Shareware MAPIT The Professional World Mapping System with Something for Everyone. Version 2.0 Copyright 1992, 1994, 1997 John B. Allison. Allison Software 166 Shady Lane Apollo, PA 15613 USA e-mail: jallison@kiski.net homepage: http://home.kiski.net/~jallison/mapit.htm This Plain Text version of the manual has been stripped of all graphics to reduce its size. Lacking all formatting, it is pretty terrible to read. See MAPIT7.DOC (Word 7), MAPIT.DOC (WordPad W95), or order the system and get the real manual. MAPIT is a trademark of Allison Software. MAPIT and its associated programs, data, and documentation are Copyright *1992 - 1997 John B. Allison and may not be duplicated or distributed without the express written consent of the author. Microsoft, MS, and MS-DOS are registered trademarks, Windows and Windows 95 are trademarks of Microsoft Corporation. CompuServe is a registered trademark of CompuServe, Inc. Hewlett-Packard, HP, and LaserJet are registered trademarks of Hewlett-Packard Company. Pentium is a registered trademark of Intel Corporation. MAPIT OVERVIEW Your Graphics Notepad on the World MAPIT is an integrated global mapping and digital display system for work, school, or fun. MAPIT provides the breadth and depth of world mapping support necessary to meet a broad range of end-user needs. MAPIT - The world mapping system with something for everyone. CONTENTS MAPIT OVERVIEW i UP AND RUNNING 1 Packaging: 1 Installation: 1 A Quick Demo: 2 MAPIT and Your Computer: 2 Making Maps: 4 Important General Features: 5 Running MAPIT: 9 How Do I .? 9 MAPIT Gotcha's: 16 Problems and Solutions: 16 MAPIT Tips: 18 MAPIT 19 The MAPIT Command Line: 19 Screen Layout: 20 Menu Commands: 20 Working with MAPIT Files: 50 FIGEDIT 54 Menu Commands: 54 Tips: 57 GEOCODE 58 The GEOCODE Command Line: 58 Definition File: 59 Example Output: 63 Example Definition File: 63 Advanced Considerations: 64 GEOTOENT 66 The GEOTOENT Command Line: 66 Definition File: 67 Example Output: 69 Example Definition File: 69 Advanced Considerations: 70 GEOTOMP1 72 The GEOTOMP1 Command Line: 72 Definition File: 73 Example Output: 77 Example Definition File: 79 Advanced Considerations: 79 GPS 80 GPS Overview: 80 GPS Installation: 80 GPS's Menus: 81 Sample Output: 84 dB File Format: 85 Error: 86 Precision versus Accuracy: 86 Hardware Connections: 87 Supported NMEA 0183 Version 2.00 Sentences: 87 Problems and Solutions: 88 MP1TOMP3 89 NMETOMP1 91 The NMETOMP1 Command Line: 91 Example Input/Output: 93 Example Data Reduction Session: 95 SIMULATE 97 The SIMULATE Command Line: 97 Script File: 98 Example Output: 102 Example Simulation Script File: 103 Demonstration Scripts: 103 Advanced Considerations: 107 APPENDIX A - FEATURE/LAYER ASSIGNMENTS 108 By Feature: 108 By Layer: 109 APPENDIX C - PEN DEFINITONS 112 APPENDIX E - STANDARD LAT/LON NOTATION 114 INDEX 117 UP AND RUNNING Packaging: Shareware MAPIT 2 is distributed as four zipped files. You need only the first to test drive this product. The other files demonstrate additional data or ancillary programs. MAPIT20A (1.4MB) - MAPIT 2 and data good for zooms 1 to 2. MAPIT20B (1.2MB) - other exes, examples, and documentation. MAPIT20C (0.8MB) - plate tectonics data, zooms 1 - 6. MAPIT20D (1.6MB) - general data for zooms 2 - 6. This data, when fully expanded, requires up to MB of disk space. Installation: To install and run MAPIT properly, you must preserve the file structure saved in the zip. To do this, unzip all the MAPIT zips using the "-d" option. C:\> pkunzip MAPIT20x -d Doing this to all four zips will give you the following directory structure: MAPIT - executables and data DBFS - point data .dbf's DBQS - queries and supporting .dbf's EXAMPLES - supporting data for examples Punt? Unfortunately to get to the point where you can read this text, you may have already unzipped MAPIT without the -d option. Copy the four original .ZIP files to the top of your drive C:> move *.zip \ (If your version of DOS doesn't support move, use copy.) delete or otherwise clean up the unzipped files, then go back to the instructions above and unzip all four (or as many as you have) using the -d option. The MAPIT and all other directories will be created for you automatically. Change to the MAPIT directory C:> cd mapit If you've downloaded the C and D zips, you'll need to combine the .mp3 data files together using the combine batch file. C:\MAPIT> combine Run MAPIT by entering "mapit": C:\MAPIT> mapit MAPIT will open the DEMO.MP3 file and use it as data. Furthermore, MAPIT will open EXTENDED.MP3 to display the Columbus Demo. When you are tired of it, delete EXTENDED.MP3. Like a dismembered star fish, it will be regenerated as a null length file the next time you run MAPIT. A Quick Demo: MAPIT comes up in the Standard World View the first time you run. to zoom in on the Gulf of Mexico. (You are tabing backward through a two-level history.) again to zoom in on Florida. Click to check "DISPLAY/All Features" and click "ZOOM/To Std World" to return to the beginning but with maximum features displayed. Again twice. After you've cycled through this simple demonstration, you may want to reduce the number of Features DISPLAYed and begin experimenting by "ZOOMing/In by Corners" and using the , , and arrow keys as outlined in MAPIT.DOC. To look up locations in MAPIT's database, select TOOLS/Database /Lookup/City Gazetteer, enter "Saint" in City, click on Lookup/More twice, select Saint Petersburg, FL from the list of matches, and click on Return & Display. MAPIT will redisplay centered on that loation. the redisplay and ZOOM/To Factor x entering 300. MAPIT and Your Computer: MAPIT requires a properly tuned, high-performance computer. A Pentium 166 is great. A 486/66 DX2 is marginal. The 286 instruction set is required. Although technically not required, math coprocessor capabilities are essential because of MAPIT's compute-intensive nature. You may want to add the following line to your AUTOEXEC.BAT file so that MAPIT knows which time zone you are in. SET TZ=EST5EDT This notifies DOS that you are in the Eastern Standard Time zone 5 hours offset from GMT and that Eastern Daylight Time is observed. Without this environmental variable, DOS assumes it is back in Redmond, Washington in the Pacific Time Zone, center of the computing world. See Appendix D for further discussion. Multi-Tasking Today's powerful computers and advanced operating systems allow users to work among several concurrently running programs. Working simultaneously with MAPIT and a paint or word processing program is possible even when running MAPIT from within a Windows DOS session. Switch between MAPIT and your other program(s) by using the ALT-TAB task switching sequence. (Hold the ALT key down while clicking the TAB key until the desired program's banner comes up.) You needn't quit MAPIT each time you want to switch to the other program. Windows 95 MAPIT works well with Windows 95 and its newer, faster CD-ROM drivers and bigger buffers. Because Windows 95 automatically installs a mouse driver for normal DOS sessions, you shouldn't have to be concerned with that issue. Adjust the (MS-DOS Prompt) Properties Box of the DOS session controlling MAPIT to enable Conventional and XMS memory to Auto. You may also want to set the working directory to C:\ or to your hard drive's default MAPIT directory. Windows 3.1 Tuning Your System MemMaker in DOS 6.0 or 6.2 generally does a good job of optimizing memory. MAPIT requires 475KB of memory. More is better. To handled its large data requirements, MAPIT may make use of XMS, EMS, or disk memory (in that order) for temporary virtual storage. If your system supports XMS (normally by loading HIMEM.SYS in your CONFIG.SYS), MAPIT does not require you to load EMS via EMM386.EXE. For a significant performance boost, use disk cache software such as SMARTDrive. The disk cache must be of adequate size, at least 500K, if it is to be of any use. If you notice a lot of disk activity when redisplaying a portion of the world, this is an indication that your system will perform better with a larger disk cache. Be certain that your DOSPROMPT's PIF is set for High Graphics, Full Screen, Background, and that Advanced Options include Uses High Memory Area, High Graphics, Emulate Text Mode, and Retain Video Memory. MAPIT is network ready, meaning MAPIT opens its main database read-only. If you are installing MAPIT in a multi-computer networked environment and are licensed to run multiple MAPIT copies, consider placing the main database WORLD.MP3 on a single node on which SHARE.EXE is run. The space savings can be significant Installing a Mouse (3.1 only) MAPIT requires a mouse. Unless you have a mouse physically attached to your computer and have installed its driver, you will be unable to operate MAPIT. You can exit MAPIT from the keyboard by entering Q. Install the mouse driver by issuing the following command at the command prompt: > path\MOUSE (e.g. C:\WINDOWS\MOUSE) where path is the path to the directory containing the mouse driver. Place this command in your AUTOEXEC.BAT file so that MOUSE is always installed when your system boots up. Caution: Windows 3.x is smart and will show a mouse cursor without the mouse driver's being installed. If the cursor doesn't appear when you run MAPIT, Q out and try to edit a file with the standard DOS editor from the DOS prompt (e.g. EDIT AUTOEXEC.BAT). If you don't have a mouse cursor in EDIT, the driver isn't loaded. Try loading it from the DOS prompt as above, and if that works, add the same command near the end of your AUTOEXEC.BAT but before any call to WINdows. Making Maps: Although MAPIT doesn't directly support a large variety of output devices, you can produce simple as well as publication-quality mapping output. Screen Capture Windows enables screen capture to the clip board via the Print Screen key. Paste (V) the image into Paintbrush or Paint, standard Windows 3 and 95 applications. Change the black background to white (and other colors to their compliments) with Paintbrush's PICK/Inverse of Paint's Image/Invert Colors option. After prettying up the image in your graphics program, print it or insert it into your word processing document. .PCX Files A more controlled way of capturing screen images from MAPIT is to select the TOOLS/.PCX menu items and save the images to .PCX files. MAPIT`s .PCX command allows you to invert the black background to white first, if you so desire. You can save the entire screen including the menu heading and footer, just the mapping area, or a selected rectangle from within the mapping area to a file whose name you choose and later import these files into your graphics or word processor by selecting the PCX filter associated with the File/Open command. HP-GL/2 Output Hewlett Packard's Graphics Language/2 provides the most detailed output possible. Unlike the .PCX format which is limited to the resolution of your screen, HP-GL/2 is a vector format output limited only by the resolution of MAPIT's underlying database and the resolution of your laser printer or pen plotting device. MAPIT directs this output to either your printer/plotter attached to the PRN port or to a .HGL file. If, for instance, you want to import HP-GL/2 input into a Microsoft Word for Windows document, first produce the file from within MAPIT, then, from within Word, select Insert/Picture setting the List Files of Type: option to HP Graphics Language (*.hgl). Important General Features: Mousing You can use the mouse in two different ways: * Dragging - Some selections (for example, Zoom by Corners) require pressing the left button to establish the starting corner or position and, with the button still depressed, dragging the cursor diagonally to the opposite corner or position to be measured before releasing the button. If, when a drag is required, you press and release at the same point, the command is aborted; nothing happens. * Point and click - Other activities, notably those requiring one- at-a-time point selections, look for the depression and release of the left mouse button without any intervening movement. Sometimes use of the right mouse button is required to signal the end of multiple-point entry. Sometimes the right mouse button aborts the command. Arrow Keys The keypad keys support simple navigation. Pg Dn zooms you in by a factor of 2, Pg Up zooms out by 2. The arrow keys move you over the map in the direction they point by half a screen. These keys interrupt the repaint process so that if you wish to go right a whole screen and up one half, quickly pressing the right arrow twice and the up arrow once immediately takes you there. Pressing the Pg Dn key three times zooms you in 8 fold. Bottom Status Line From left to right the bottom status line displays the current zoom factor, scale, map width at center screen, and latitude and longitude of the cursor. Header Status Field The Header Status Field three different fields of information depending upon MAPIT`s state. The most common display is the date/time/hour- offset. This shows the approximate (calculated) day and time and the number of hours the time of the location pointed to by the mouse is offset from your local time. See Appendix D for further discussion. As MAPIT redisplays the screen, the databases MAPIT is reading flash up in the status field. This gives you a feel for what MAPIT is currently doing and where it is spending its time. When you have the GPS Markers activated and there is active data present, MAPIT displays the current date/time passed through the GPS interface DBF. If you are running a simulation, you can see exactly where you are in the simulation: how it has progressed. Esc Pressing the Esc key will close a menu and will terminate the current scan of a data base if you are repainting the screen. Since MAPIT scans several databases, you may have to press Esc several times or hold it down for auto repeat to abort the entire repaint process. Tab Pressing the tab key toggles the display between the current and the last location/zoom (except those positions defined by Zoom/To Standard World). When running from the CD-ROM, MAPIT comes up in the standard world view. If you tab once, you will go to an overview of the United States. Tab again and you will go to an overview of Europe. These two views are also stored as positions A and E respectively. (i.e., typing `E' will take you to Europe.) Single letter or digit Pressing any single letter or digit restores the display to the location and zoom stored at that letter or digit. (Short for POSITION/Restore.) Left mouse button - cities, hidden text, figures Clicking with the left mouse button at a non-menu area of the screen, causes MAPIT to scan visible databases looking for hidden text, figure, and city objects to display, a potentially time-consuming process. Esc aborts this scan. Important Menu Functions The two pulldown menus new users will find most useful are the ZOOM and the DISPLAY menus. ZOOM implements navigation and repaint. DISPLAY effects the visibility of layers (features). A third menu, TOOLS, contains Database Lookup for positioning by the City Gazetteer. Enter - The Position Menu MAPIT supports keyboard entry of exact coordinates although the operational context begins as mouse entry. Pressing the Enter key when MAPIT is prompting for mouse input with a cross hairs brings up the floating Position Menu for exact keyboard entry of a location. Clicking on Loc: allows you to enter a latitude and/or a longitude in free format. (See Appendix E.) You can also change the zoom or scale, display the new location, and go back to mouse entry for visual positioning and a possible retry with the Position Menu for fine tuning. The Position Menu is a very powerful navigational feature. Suppose you wanted to lay in a permanent great circle between Heathrow in London and JFK in New York. You'd use the TOOLS/Great Circles/Point to Point command. But because the accuracy by mouse entry is not sufficient at the zoom 4 level required to see both England and New York simultaneously, zoom in on the Heathrow end first, click that location with the mouse, and when the second mouse marker displays, press the Enter key. The Position Menu will pop up. Change the zoom level to 2 and click on Display new loc. MAPIT will display centered on London with New York in view. You are still in insert mode in the Point to Point command. Position the mouse marker over western Long Island and press Enter. (Don't click the mouse yet!) Change the zoom to 300 and Display new loc again. Find JFK, move the mouse marker to it, and click the left mouse button. The result is an accurately- positioned great circle between Heathrow and JFK The few places you can't enter exact data from keyboard are those associated with dynamic screen repaint while you move the mouse: dynamic great circle generation and poly-line entry, for instance. MAPIT Utilities MAPIT The primary program. DBFSORT Create an index for a new style MAPIT DBF. DBFTOMP3 Convert DBF to old style .MP3 point data. FIGEDIT Create and edit MAPIT figure definitions. GARTODBF Special Garmin track file to DBF conversion. GEOCODE Add lat/lon fields to a DBF based on a matching field. GEOTOENT Geocoded DBF to MAPIT entity DBF. GEOTOMP1 Geocoded DBF to .MP1 line data. GPS Windows GPS receiving program. MP1TOMP3 Convert .MP1 text line data to displayable binary format. MP3MOD Modify .MP3 data utility. MP3TODBF Convert old style point .MP3 data to DBF. MP3TOMP1 Convert .MP3 line data to text .MP1 format. NETANA Network node connecting analyzer. NMETOMP1 Permanent track output from GPS to .MP1. SIMULATE Accelerated real-time simulation of moving objects. TILEIZE Update the tile field in a new style MAPIT DBF. Help for MAPIT DOS Utilities All MAPIT-based DOS utilities including MAPIT itself support the following command line protocols from the C: prompt. Entering / from the command line generates a complete list of calling options. Entering /? generates on-line documentation of the program and its command line arguments. Entering /help generates on-line documentation of the statement syntax of the program's definition file. Not all programs have definition files and support the /help option. You can abbreviate command line options short of the point of ambiguity. MAPIT`s /noe is the same as /noextended, but /no will induce an error message listing the ambiguous possibilities as /noextended and /nosavefile Running MAPIT: Shareware MAPIT can be accessed with C:> mapit which opens DEMO.MP3 as the main file and EXTENDED.MP3 as the extended or private output file. If the latter is not found, MAPIT creates a zero-length EXTENDED.MP3. C:> mapit main /extended=x opens MAIN.MP3 as the main file and X.MP3 as the extended file. C:> mapit nul /noextended starts MAPIT with no .MP3 data. How Do I .? I want to stick pins into a map. How can MAPIT help me? You probably want to insert figures (simple line drawings) with labels and up to a screen's worth of information hidden behind each figure although simple stroked text might also do. Your first question is whether you're inserting hundreds or even thousands of entries from an already-existing database (.DBF), or if you're going to do this one-at-at time from the keyboard. In either case you're going to store the data in DB point entities, and you'll have to add a record to the scan table (see below). Because the CD-ROM is read-only, you must use a scan table residing on your hard drive which implies you will want to use the mycopy/mymap technique for starting MAPIT from your hard drive described on the first page of this section and change the scan table reference as outlined below. If you're converting a lot of data from a dBASE file: You must geocode the file (see below) and convert it to a figure or other DB entity using GEOTOENT. Finally you must reference your newly-created figure file by adding a record naming it to the currently-active scan table (see below) and make that record active. Subsequent redisplays will display your new data. If you're adding a limited amount of data from the keyboard and this is the first time you're entering data, you must create a point entity database. Use FILES/New DBF/Figure and enter a name such as "C:REDPINS" followed by a return. The General DBF Editor will display the first record which is preloaded with a square located lat = 0, lon = 0 near the coast of Africa! Escape out of this record and ignore it or move it later. Add your entities with the EDIT/DBF Entites/Insert menu. At the prompt for a DB point entity file, enter the name of the file you just created: C:REDPINS. You'll be given a choice of figure names (which you can augment with FIGEDIT). Choosing one (such as circle) brings up the plus positioning cursor which you can exactly position by entering a return or with the mouse. Locating your figure leads you to our old friend the General DBF Editor. Here you can enter Label_Text (always end text with an Esc) and Hidden_Text. If you have more than 40 characters of hidden text, use the Memo field. You can change many other options here, but don't alter E_TYPE, LATITUDE, LONGITUDE, or TILE. Use the EDIT/DBF Entites/Move option to change entity location. Esc completes the entry. The marker will display on the screen but will not redisplay unless you reference its DBF (C:REDPINS) from your scan table (see below). What is the scan table, and how do I use and modify it? If you are going to display your own dBASE entities, you must reference the files in which they reside from another DBF called a scan table. Because the CD-ROM is read-only, you must add your custom records to a scan table residing on your hard drive which implies you will want to use the mycopy/mymap technique for starting MAPIT from your hard drive described on the first page of this section. From FILES/Edit DBF, enter C:SCANTABL (no final "E") followed by Enter. The first record of C:SCANTABL.DBF will display. Use End to go to the last record. If it is empty or unused, add the name of your DBF (e.g. C:REDPINS), add the E_TYPE ("F" for Figures, see list under Add Scan Table Records in the MAPIT section) Esc-ing to terminate text, and mark ACTIVE "T"rue. Exit the editor with Esc. Use FILES/Add Scan Table Record to append a new record to the end of the DBF if there is no spare. The scan table you have modified must be activated from within MAPIT by selecting FILES/Open and entering C:SCANTABL. Clicking on FILES/Scan Table DBF tells you which scan table, if any, is currently active. How do I use MAPIT to track hurricanes? Answer A: Let's assume that you're using labeled circle figures which you created in accordance with the instructions in question 1, "How do I stick pins into a map." As the hurricane proceeds along its track, you either want to move the figure or duplicate it changing its location, size, and possibly updating its label as it progresses. Use EDIT/DBF Entities/Move to move an existing figure. Use Duplicate and Change to make additional copies and edit them. All pretty nifty. Answer B: You want to see the dynamic of the interaction of several tropical storms or you want to see how your hurricane moves in time. Use SIMULATE to show all this in accelerated real time. You'll have to use MAPIT's moving markers with or without trails to show the progress of your storms, not quite as sexy as the circle figures, but still quite dramatic and revealing. Perhaps you can combine both duplicated figures and moving markers. You'll have to lay out a .SIM script of the hurricane's path as explained in SIMULATE. How do I GEOCODE data? Geocoding is the process of assigning latitude/longitude fields to dBASE records. MAPIT DB entity files are, by definition, geocoded, but not all geocoded files are DB entity files. DB entity files contain many required fields which are not necessary for geocoding. To geocode a file, you must relate a field or fields in your database with corresponding fields in a MAPIT database. Quite often you'll use a ZIP code or city/state/country fields for key and matching fields in geocoding. See \MAPIT20\DBFS on the CD-ROM for MAPIT databases against which to geocode. Use the MAPIT GEOCODE utility to do the work. How do I create a MAPIT DB entity file from my dBASE IV file? Geocoding is the first step in creating a DB entity file from your own data. Each record must have an associated latitude/longitude. That's the hard part. Use the MAPIT utility GEOTOENT to add the fields necessary to convert your geocoded file to a particular MAPIT entity format. How do I visualize which colors go with which color numbers? For those of us who can't quite picture magenta, mauve, or color number 11, use the EDIT/Layers/Change Color/Color (or Layer) to display a new color or the color on another layer. Since the Color option actually changes the color on that layer, it's safest to change layers remembering that layer 121 uses, by default, color 1, layer 122, color 2, etc. How can my child make maps for school? MAPIT is the perfect source of real data for students to use in producing maps for school or just for fun. Probably the easiest method is to create .PCX files from within MAPIT and to import them into Paint of Paintbrush. If you need to produce more colorful output, use the flood fill option of Paint to color oceans and lakes blue. If you don't have a color printer, the lighter colors will give you more satisfactory contrasting colors. Light yellow, for instance, serves well as water contrasting against land. Choose the roller symbol for flood fill. Non- solid colors are produced by dithering and won't unflood, so check your flood areas first for leaks with a solid color. (Leaks are caused by breaks in borders or lines which allows the flood color to spread beyond its intended boundary. Use Zoom to find and patch leaks.) Children love this. Turn off the MAPIT grid before screen capture to make fills of large areas easier. What do all those files hold that seem to come along with MAPIT? Which may I delete? .mp3 - Main and private files holding line and old style point entities. WORLD.MP3 is the main data file. .fig - File containing the user's custom figures. Normally this file is user- created by FIGEDIT. Without it, figures won't be displayed. Defaults to STD.FIG. .fnt - File defining stroked fonts. Without it, stroked text doesn't work. Defaults to STD.FNT. .pen - File overriding MAPIT`s internal HP- GL/2 plotter settings. See STD.PEN. .sav - File holding MAPIT's final state to restart MAPIT where it left off. Defaults to MAPIT.SA. Recreated if deleted. .shw - File holding a shadow image of similarly-named large .mp3 file. Recreated if deleted. What are the old versus the new style point entities. Which should I use? MAPIT point entities come in two styles: old, which reside in .mp3 files along with line data, and new, which are specialized dBASE IV files. MP3TODBF and DBFTOMP3 convert entities from one format to the other. In general the new style point entities are more robust and flexible than the old. It is, however, easier to save data ad hoc to your private .mp3 if you are running "map myfile" or "mymap myfile" and do not have a DB entity file created and entered in your scan table. On the other hand, you should set up a DB entity file in the new style if you are serious about manipulating your data. See the first question, "How can I stick pins into a map" for details. How do I export line data for use in another system? If the data to be exported is from MAPIT's main database (D:\MAPIT20\WORLD.MP3) or from your own private .mp3 file, open that file as the main database with a new extended database (e.g. map new). Use the EDIT/Copy command to copy all visible entities to your extended database. (To capture the fullest depth of MAPIT data, you must be at zoom 24 or beyond.) Outside of MAPIT, use MP3TOMP1 to copy and convert the data in your extended database from .mp3 to .mp1 ASCII lat/lon format for import into another system. Also see MP3MOD for copying .mp3 data within well-defined extents from the C:> prompt rather than from with MAPIT. In DOS, there's this confusing distinction between file names C:xxx and C:\xxx. What does that leading slash do? The leading slash says, "Go to the top of the drive." If your current directory on drive C: is \mydir (you changed directory there with the command "cd \mydir") and you ask for a directory listing of c:xxx, DOS will look for the file xxx on drive C: relative to C:'s current directory and will return, if it exists, C:\mydir\xxx. If you ask for c:\xxx, DOS will try to return C:\xxx as found in the root directory. The slash implies an absolute path while no slash implies a path relative to that drives current directory. MAPIT quite often uses relative addressing so that it doesn't have to know the details of the directory structure you choose to implement on your hard drives. This leads to a pet peeve. The DOS Prompt under Windows is often set up to begin its life in C:\windows where enough garbage and general confusion reside to confuse the most hearty soul. In your W3.1 PIF editor or by right clicking on your W95's MS-DOS Prompt's tool bar icon and left clicking on Properties, change the Working Directory to a simple "C:\" to take you to the root of your C: drive at program invocation. Of course if you have a DOS Prompt dedicated to a particular task (such as MAPIT), you'll want your Working Directory to reflect that choice (e.g. D:\ for MAPIT on your CD-ROM or C:\xxx for MAPIT from your hard drive). I want to make a really large map for a display at school, and all we have is a little 8 « by 11 printer. Get out the scissors and tape and set up MAPIT at the zoom level you wish to print your map. You're going to make a series of maps covering the entire area in which you're interested and, with your scissors and tape, cut and paste them together. Because MAPIT is a Mercator projection, you can piece these separately printed maps together indefinitely, at least in theory. The hard part is producing map sections which fill up a whole sheet of paper out of your printer. Its easiest if you have a printer which can accept HP-GL/2 directly or a drawing program which accepts it as input and supports your laser printer. Working with Paint in Windows 95 is a little more difficult but workable once you have it figured out. You'll have to export inverted .PCX files of the entire map area or, from within MAPIT, use Print Screen to cut and a v to paste directly into Print. You will have had to expand the background to approximately twice the size and then stretched the picture 200% in both the horizontal and vertical directions before printing in landscape mode. Perhaps you have an easier method or a better software package for outputting a full-page image. The key and easiest part is producing the adjacent images from within MAPIT. After selecting your zoom and outputting the first image, hit an arrow key twice to move either up, down, or sideways before outputting your next image. Keep doing this until you've covered your area of interest while task switching with a Tab between MAPIT and your drawing program for each new image. At a scale of 1:1,000,000, a paper map of the equator would stretch some 125 feet. How many sheets of paper in 125 feet? I heard about Baku, Azerbaijan on the radio but am a terrible speller. How do I look it up? Normally you'd use the TOOLS/Database Lookup/City Gazetteer query to look up a city whose name you could spell. With so many cities whose names begin "Ba", you'd be better off using the /Cities in.. query and entering "Az" for the country and "Ba" for the city. The seven entries immediately appear. My granddad served on Los Negros in the Pacific during WWII. It must be pretty small. I've never found it on a map. How do I look it up? Use the TOOLS/Database Lookup/Placenames query. You'll find when you turn on DISPLAY/Boundaries/Political Text that Los Negros is a little horse shoe-shaped island with a total length of about 15 miles, part of Manus, Papua New Guinea in the Admiralty Islands, the Bismarck Archipelago. How do I make scatter diagrams of cities over large continental areas? To accelerate display, MAPIT separates cities by size in a series of dBASE files accessed via the scan table and ignores them until you zoom in to some maximum scale. Use FILES/Edit DBF to open your hard disk version of SCANTABL.DBF, look for the files holding cities of the sizes you're interested in, and change their MAX_SCALE fields from the 4,000,000 or whatever to 0 or some other small number. In DISPLAY/Cities & Landmarks, toggle "Symbol & Name" to "Symbol only". The next time you redisplay the screen, MAPIT will display all your cities as circles. If you are zoomed out for a broad view, this redisplay will take a long time. I'm plotting a map, and city names overlie each other. What can I do? There is an obscure field in the city record named TXT_OFFSET which defaults to "E". Enter the first letter of Above, Even, or Below to change the position of the name text to lie to the right of and above, even, or below the level of the city's marker. Edit individual cities using EDIT/DBF Entities/Change and clicking in the middle of their symbols. Here again you cannot change data on the CD-ROM but must make, change, and reference a copy on your hard drive. MAPIT Gotcha's: Don't forget to TILEIZE, either from within MAPIT for small dBASE files or from the utility for large files, after you've created or made manual changes to the lat/lon fields. Without the proper tile number associated with a latitude/longitude pair, the entity simply will not display. Don't forget to delete the scan table .MDX index file after you've made changes to the sort PRIORITY field. MAPIT will re-create a correct index on startup. If MAPIT has problems opening a .DBF after you've created it and MAPIT or a utility died in the process and you know that the file is there and is of the correct format, rebooting may clear the problem. Access problems can haunt a DBF like the ceaselessly roaming spirits of the undead after the untimely demise of a dBASE program. Blow away the .SHW shadow file when you've made changes to (lengthened or changed header zoom via MP3MOD) .MP3 files. The old shadow file will prevent the changes from becoming apparent. MAPIT automatically creates a new shadow file when it doesn't find the old one for large .MP3 files. DB entities can be inserted into inactive databases (or into databases whose scan table is inactive). The new entity will display upon insertion but will not display on repaint. There is a subtle distinction between a null entry in the primary key field of a database lookup and a blank. A null in the City field of City Gazetteer will find all cities starting with the first record. A blank will find none. Both blank and null match all entries on secondary keys. Problems and Solutions: The following are problems you may encounter while using MAPIT, and their possible causes/solutions: 1. No stroked text appears. The latitude/longitude numbers are missing. A. The font file std.fnt which holds stroked text character definitions is not in the user's directory. B. Stroked text which is too small to read at a given zoom is not displayed. C. The current zoom factor does not fall within the text's min/max zoom values. 2. The city markers display, but no city names. A. Under the menu DISPLAY/Cities & Landmarks, the Symbol & Name option must be selected. B. The absence of a font file will also cause the names to be absent. 3. Figures I have previously entered are not visible. A. The figures file std.fig, which holds figures' definitions, is not in the user's directory. B. The current zoom factor does not fall within the figure's min/max zoom values. 4. Graphic elements I have added in a previous session have dis- appeared. The graphic elements you entered are written to the private database EXTENDED.MP3. That same file must be in your current directory. Use the DIR command to check EXTENDED.MP3's length and date for reasonableness. 5. Error - Lost sync in mid file: "file_name" The .MP3 data file file_name has become corrupted. Nothing beyond the point of corruption can be read. Replace it with a backup file or try to EDIT/Copy as much data from it as possible. (See Private Database Management.) 6. Data I try to highlight for copy, modification, or deletion won't highlight although it displays. This is so frustrating! Data you are going to change must be in the extended database. Although you can view data in MAPIT's main database, it is read only and cannot be changed. (See MAPIT's /delete switch for the one exception.) 7. Line data I entered while running MAPIT from the CD with "map", not specifying any extended file, appears to be entered but disappears upon redisplay. You have discovered the beauty of the /noextended option, the nul file, the bit bucket, write only media, if you will. MAPIT constructs temporary graphics displaying your lines or old-style point entities as you enter them and as it write the permanent data to the nul file. Upon repaint, the nul file, which always returns an immediate End-of-File condition, a nul length, tells the redisplay code there is nothing there to display. Beautiful, isn't it? MAPIT Tips: MAPIT is busy scanning the databases when the cursor disappears between repaints. When it becomes visible again, the redisplay is finished and MAPIT is ready to accept command input. Remember, you can cut short each database scan by pressing the Esc key - once for the main database and again, if necessary, for your private database. (Usually the main database scan is much longer.) Use the cross hairs displayed by POSITION/Center for more accurate lat/long display in the status line while measuring positions of objects. Cancel when finished with the right mouse button. Use DOS's NUL file name if you need an empty file to read from or a bit bucket to write to. For example, if you wish to view or operate on the private database file EXTENDED.MP3 file by itself without possible interference from the data in the main database WORLD.MP3, open MAPIT using the NUL file as the main database name: C:> mapit nul MAPIT The MAPIT Command Line: In general, start MAPIT from the command line by entering MAPIT [main_data_file] [/options] where main_data_file - The primary .mp3 format data file opened read-only. Defaults to WORLD.MP3 if not specified. options /extended= private_data_file - A private .mp3 format data file opened for update with user data or changes. If none exists, a zero length file is created. Defaults to EXTENDED.MP3 if not specified. /noextended - No extended file looked for or created. /figure= figure_file - File containing the user's custom figures.. Normally this file is user- created by FIGEDIT. Without it, figures won't be displayed. Defaults to STD.FIG if not specified. /font=font_file - File defining stroked fonts. Without it, stroked text doesn't work. Defaults to STD.FNT if not specified. /save=save_file - The file holding MAPIT's final state to restart MAPIT where it left off. Defaults to MAPIT.SAV if not specified. Recreated if deleted. /nosavefile - No .SAV file produced (read only environment). /pendefinition=fil e_name - Override MAPIT`s internal HP-GL/2 plotter settings. Defaults to a file ending in .PEN. /delete - Allows the MAPIT menu selection EDIT/Copy & Delete to work by opening main_mp3_data for update. MAPIT also creates and maintains a .SHW shadow file for each large .MP3 database it opens. MAPIT will create a new one if you delete it. If you alter a large .MP3 file by concatenating another to it, delete the corresponding shadow file to make all of the data in the new .MP3 file visible. (See Working with MAPIT Files.) See MAP.BAT and MYMAP.BAT for descriptions of sample batch startup files for MAPIT. Screen Layout: MAPIT uses a mouse-actuated pull-down menu structure in which commands are grouped by similar function along the top of the display. The bottom of the screen holds MAPIT's status line, which displays the zoom factor, the approximate scale and distance across the center of the screen, and the latitude/longitude of the mouse pointer. Sometimes instructions, prompts, or information are written to the status line. The Header Status Field, top and center, is described above. FILES Controls ScanTable access and Exit ZOOM Redisplays the screen and controls zooming. POSITION Controls the viewer's location. TOOLS Controls great circle calculation, database lookup, GPS markers, and plotting functions. EDIT Controls layer color assignments and DBF and.MP3 entity modification and duplication. DISPLAY Controls mapping features visibility and format. Menu Commands: FILES Exiting MAPIT and advanced operations controlling the selection of databases for display. Scan Table DBF dBASE IV databases (DBF's) have been added to supplement the main (WORLD.MP3) and extended (/extended=) .MP3 databases and are designed to hold point type data (figures, stroked text, hidden text, and cities). While .MP3 files still support point data, their primary function is now limited to line data. The scan table is a dBASE file holding a collection of entity file names which, in turn, hold MAPIT point entity data for display. Think of a scan table as a directory of entity tables. Only one scan table can be active at a time, but you may have many unopened and therefore unused scan tables existing in your computer's file system. On the other hand, you need not have any scan table defined. By default, MAPIT looks for the scan table scantabl.dbf (no "e" in scantabl). If not found, MAPIT ignores its absence. Scan tables must have one or more entries. The entries refer to MAPIT entity tables which describe entities for display on your screen. This directory/file type hierarchy makes for a very open-ended, flexible, and powerful entity display system. Scan table entries can be either active or inactive. They must be active to be searched and displayed. If active, the named entity table must exist. Its availability can also be limited by display scale, a technique designed to improve redisplay efficiency. Scan Table DBF displays the name of the current scan table. Click or hit any key to go on. Open Open requests the name of a scan table to open as the current scan table. Use the complete path name if it is not in the current directory. The old scan table is automatically closed. Close Close closes the current scan table but does not open a replacement. All MAPIT redisplay now takes place from the main and extended .mp3 files. New DBF New DBF is a special command used to create a new MAPIT dBASE file containing a single record. You choose the type of database to create: a scan table or one of several entity table databases. MAPIT creates databases of minimal field count and with required field names. Its possible for you to use more complex databases with your own extra fields added. Currently only entity tables containing point entities are supported. Lines must still reside in .mp3 files. Add Scan Table Record Use this command to add additional scan table records beyond the first one. You can control the order in which entity tables are searched and displayed by adjusting the value of the PRIORITY field, a numeric two- digit field sorted in ascending order. The default priority is 20. You must set ACTIVE True if you want the referenced entity database to be scanned. E_TYPE, the entity type of the referenced entity tables must be set according to the table below. E_TYPE is case insensitive. E_TYPE MAPIT Entity 'C' city 'F' figure 'H' hidden text 'M' pcx map 'S' stroked text CATEGORY defines an ad hoc entity type which, in the future, will allow dynamic inclusion/exclusion of entire entity files just as Political Boundaries are a predefined category of .mp3 files. Not yet implemented. F_COLOR refers to the a forced color for all entities in this entity file. A value of -1 signifies no forced color. DESCRIPT is descriptive comment for documentation purposes only. FILE_NAME is, of course, the path name of the entity file to be scanned and displayed. FILE_TYPE must be 'E' for MAPIT entity files. MAX_SCALE refers to the maximum scale above which this entity file is not scanned. MIN_SCALE refers to the minimum scale below which this entity file is not scanned. Both these values are compared with the current display scale. For instance, the Standard Display centered on the prime meridian at the equator and showing the entire world gives a scale of approximately 1:157,000,000 on a 10 inch wide monitor. Zooming in reduces that scale shown near the lower left corner of your display. You can specify that entity tables will not be used until the current scale is less than or equal to a MAX_SCALE value and won't be available beyond (less than) the value of MIN_SCALE. You can turn this feature off by not changing the default values from 0, a flag to ignore these values. Edit DBF Edit DBF is a generalized dBASE editor which should work on just about any reasonable database. It is designed, however, to facilitate changing fields in MAPIT scan table and entity records. The fields listed, their order, and data types are dependent on the definition of the database being edited. The example show here is from a scan table database. One should realize, however, that because this is a generalized editor and because no tag (key) files are opened, changes made to a key field will have no immediate effect upon record ordering. Changing the PRIORITY field in scan table records or the TILE field in entity files will have no immediate ordering effect. You can, however, force a reordering by deleting the corresponding .MDX (index) file and running MAPIT again. (scantabl.mdx is the index for scantabl.dbf.) Finding the index file missing, MAPIT will recreate it on the fly, and everything, including the newly changed record, will be ordered properly. You can change a field by clicking it with you left mouse button. The type and length of field appear on the bottom left of the display. Text fields are a little tricky in that they are not terminated with the Enter key but by Esc. Returning inserts an implicit sequence into the string. Entering a city name, for instance, with an Enter in it will force all following text to the next line. You can enter multi-line character fields in this manner. Although the text may disappear as you enter more, re-editing it brings up the whole field formatted to the proper width and depth. You can skip to the next record with the down arrow key. Up arrow takes you back one. Home takes you to the first physical record and End, to the last. While Ins doesn't insert a record (to avoid ordering problems), Del marks a record for delete. Footer information displays in red to indicate this. The record can be undeleted by keying Del by itself. You must compact the database to physically purge deleted record, an operation not supported within MAPIT. Records marked for deletion will not display but are changeable in order to get them back in case you change your mind. All changes you make to fields take effect immediately! Another instance of this editor is tied to the EDIT/DBF Entities/Change and is designed specifically for editing DBF entity records. Reset DBF Tiles MAPIT tiles are numbered 5 x 5 degree geographic areas designed to limit data search and speed repaint. This option assigns the tile field the correct tile number for a location. Externally created DBF's must make the tile field the key. You should manually delete the associated .MDX index file to force the creation of a new index. Mismatched tile/loc combinations or misordered tiles will prevent the display of the related entities. If you are working with large DBF's (several megabytes or larger), use the external program TILEIZE to assign the tile numbers and complete the job much more quickly. Multi-Record Change A general DBF editor to change a field in all records to a particular value. Let's you preview the first n records you will change. Exit MAPIT Terminates MAPIT. Alternately you can key Q to quit or exit from the system (if, for instance, you don't have a mouse). Upon exit, MAPIT creates the save file mapit.sav reflecting changes in the system, most notably your last location and zoom factor. When MAPIT starts up again, the systems resumes where you left off. If a save file is damaged or deleted, a new one is created the next time you exit. Of course your old locations and settings stored in the original save file are lost. Another file MAPIT may create is the shadow file, data_file.shw. A shadow file holds an image of the region data for a particular .mp3 database file. Loading the shadow file is much faster than scanning the regions of a large database at startup. Shadow files aren't created for small databases. If a shadow file is damaged or deleted, a new one is created the next time you exit. Your first startup may be delayed while the databases' regions are scanned. ZOOM Zooming is a method of drawing closer to or farther away from the detail of the portion of the display you are viewing. The initial zoom factor of 1 displays what is herein called the Standard World: the display centered on 0 latitude, 0 longitude with visibility from 180 degrees west to 180 degrees east. You can use one of a number of different methods to zoom in to see more detail, or once you are in, to zoom out for a broader, less detailed view. Zooming in is necessary not only to see the additional undulations of a rugged coast, for instance, but to view new objects revealed only at the greater detail. To prevent screen clutter, many objects - major and minor rivers, national borders, state and provincial borders, and cities- are intentionally not visible except at higher zoom factors. When you zoom in too far, instead of seeing the smooth, natural-looking curves of coastlines, you see the underlying vectors making up the database. The maximum zoom factor supported by the data is dependent on the size and detail of the MAPIT database you purchased. Higher zoom factors demand much larger data files. Redisplay This command clears the screen before repainting it with the current data. Use this function if you want to clear off old or temporary data. Overwrite This command does not clear the screen, but paints over it with current data. You can use this function in conjunction with changing the visibility of certain objects to accentuate certain mapping features. For instance, if you are examining an area in which a border follow a small river and the border in question has been overdrawn by the river, you can accentuate the border without losing all small rivers by turning off small river visibility (DISPLAY/ Rivers) and then choosing ZOOM/Overwrite. Because the Rivers display is toggled off, the rivers will not be redrawn after the overwrite and the border will be visible. Because you did not clear the screen first, other Rivers will remain displayed from the prior redisplay. (Kill PCX Map) Turn off the currently-turned on PCX Map. Redisplaying or overwriting after selecting this item kills a PCX Map. Needed only after displaying a PCX Map. In by Corners This is the most common means of zooming in. First choose one corner of a proposed new window by pressing the left mouse button and, with it still depressed, drag the mouse to the diagonally opposite corner of the proposed viewing window. MAPIT adjusts either the width or height of the proposed window to maintain your screen's aspect ratio while guaranteeing that the area you asked to view (at a minimum) will be visible. Zooming In by Corners also changes the center of the display. In by X Factor This command prompts you to enter a factor by which to zoom into the display while maintaining the current center. If your current zoom factor is 3, zooming in by a factor of 2 will result in a new zoom factor of 6. Out by X Factor Here you can enter a factor by which to zoom out from the display while maintaining the current center. If your current zoom factor is 9, zooming out by a factor of 2 will result in a new factor of 4.5 (although the status line will display 4). To Factor X If you know the exact factor to which you want to zoom, you can enter it with this command. To Scale X scale latitude display width zoom 9,000,000 0 1421 mi. 17 9,000,000 83 N 1421 mi. 2 Scale refers to the mapping scale, the ratio of the width of the display to the width of the scene displayed. One inch on a ten inch display equals 2,485.7 miles at the equator for a scale of 1:157,492,884. While zoom factors are easy to work in and think about, professional cartographers think in terms of scale. Scale is latitude independent. Whether you're working at the equator or at 83 degrees north in Greenland, equal scales give, by definition, equal fields of view. To Std World Standard World is the whole the world's entire width across the screen centered on latitude 0, longitude 0 and displayed at zoom factor 1 - the view MAPIT shows when it first started up. If you are ever lost, you can come back to this point. POSITION MAPIT allows you to navigate over the face of the globe by ZOOM and POSITION. ZOOM controls the zoom factor (the width of the displayed area), and POSITION controls the center of the displayed area. You can change the center of the display by several means. One means is ZOOM/In by Corners; with this technique, however, your choice of a new center is limited to the current viewing area. The POSITION commands offer explicit alternative methods. MAPIT tries to maintain a constant zoom factor while changing location. This means that as one moves north or south, the scale will change. Center Clicking the left mouse button after choosing Center repositions the screen's center to the location just clicked. The scope of the display (zoom factor) remains the same, but you can move up to a half-screen's distance from the old center. Use this technique to center the display on some point of interest before zooming in for a close-up look. (By-X- Factor zooms are accomplished on the current center.) Begrudgingly politically correct, MAPIT supports displays centered just about anywhere. You can, for instance, center the display at 180 degrees (still at zoom 1) to measure the shortest distance between Boston and Australia. Drag You can drag any point on the screen to be re-displayed at any other point. If, for instance, a feature near the bottom of the display is the topmost object you wish to see (that is, your interest is in features below it), press the left mouse button while over that near-the-bottom feature, drag to a point near the top of the screen, and release the left mouse button. Use this technique to move as much as a screen's dis- tance from the old center. Last (TAB) Selecting the Last menu option (or pressing the tab key from the main menu) repositions the display to the last location/zoom combination. Selecting Last again toggles the display back to what originally had been the current location/zoom. Using the TAB key is a fast way of toggling between these two views. The only exception to this method is that the Standard World location is not included in this Last scheme because you can easily get to them by re-invoking Zoom/To Std World. Save as Save as is a method of permanently storing a location/zoom combination as a single letter or digit for later access. For instance, if you save the location of Bermuda as "H" (for Hamilton, its capital city), you'll be able to get back to that view of Bermuda from any location by Restoring H or entering H at the main menu. You can save up to 36 of these single character locations. Restore Restore is the formal menu-selected method of returning to any previously Save as location/zoom factor. The fast method is, of course, just entering the single letter or digit in which the target view is saved. Restoring to an unsaved letter results in no action. TOOLS Temp. Distance Measure great circle distances between multiple points. (Position Menu entry not available.) Curves produced are in temporary graphics only and will disappear after a redisplay. See Great Circles below in this menu for creating permanent distance curves. Temp. Distance computes the great-circle distance from one point to another while dynamically displaying both great-circle and constant- compass-bearing (rhumb) lines. For short distances, great-circle distances approximate rhumb lines which you would draw on a Mercator map with a ruler. Great-circle distances, however, are the physically shortest distances on a globe (as measured by standard crows). Great circles appear as curved lines on a Mercator projection, with the notable exceptions of the equator and all north-south running (meridian) lines. Radio waves follow great circles as did Charles Lindbergh. To measure distance, position the cursor over the location from which you want to start measuring, press the left mouse button, and drag (with the button still depressed) to the place at which you want to end the measurement. Double-clicking halts measurement. MAPIT displays the result on the footer status line in statute miles, nautical miles, or kilometers depending on your current system of measurement. (See the DISPLAY menu.) If you need to measure multi-leg distances, measure the first leg as noted above; at the end of that leg release the left mouse button. Then press it again before moving on to the next leg. You can back up (delete legs) with the right mouse button. The To: and From: angles displayed right after the distance on the footer status line are the bearings from the starting point to the destination and from the destination back to the starting point. You might expect these bearings to have a simple reciprocal relationship: one's being equal to the other plus or minus 180 degrees. They do only for short distances. If you were going to fly your airplane or point your antenna, these angles would indicate the initial course for you to fly The excess length of the rhumb over the great circle distance is dynamically displayed in top center status field along with the To bearing of the rhumb course. The From bearing is the To's reciprocal in this case. You can measure great circle distances more than half way around the world. When your great circle flips over both poles, your track is more half way around the world and you are measuring the longer part of the great circle. The letter L will appear in the footer following the From angle, and the distance will be greater than 12,000 miles, the approximate half circumference of the earth. Temp. Circle Dynamically enter a temporary circle of a given radius about a point. (Position Menu entry not available.) Curves produced are in temporary graphics only and will disappear after a redisplay. See Great Circles below in this menu for creating permanent circle curves. Temp. Circle draws a circle around a geographic point of your choosing. As you draw it, its radius and the enclosed area are displayed on the lower left corner of the footer status line. While actually a simple circle on a sphere, the range curve can be complex when projected onto a flat map. As the curve passes over one of the poles in the Mercator projection, it transforms into a sinusoidal open curve, which then, as it passes over the second pole, reforms back into a closed curve only to disappear as small circle on the opposite side of the world from its starting point. This strange behavior is really the path a ring would take as it grows from a single point on a sphere encompassing half the world before converging to a point on the other side of the earth. To prove to yourself that all points on a given circle are equidistant from the center, use the Temp. Distance function to connect the center to a number of randomly chosen points on the range curve noting their measured distances. You can cancel a Temp. Circle function in mid-command by depressing the mouse's right button. Great Circles Permanent: Permanent/temporary toggle for all items in this menu. Permanent objects are stored in the extended file. Distance: Dynamic (Multi-point) - Position Menu entry not available. Point to Point - Line of Sight: at Angle, From Location - What you see along a heading from a known point. at Angle, To Location - Line on which you stand when looking at an angle toward a known point. Typical of coastal piloting or RDF work. Complete Great Circle at Angle, Through Point - Line of Sight through Two Points - Range Circles: Dynamic Circle - Position Menu entry not available. Two Points - Center & Range - Line of Sight - Range from central elevated point to a far elevated object over the horizon or optionally limited to a dip angle or elevation. Use for satellite receiver range, air reconnaissance, strong light navigation. Database Lookup MAPIT supports database lookup of a number of different items related to cities, countries, states, US ZIP and telephone exchanges, geographic placenames, airports, and US towers. Once an item is located, you can go to its geographical position. All queries share the following in common: One or more fields in which to enter information. If you enter partial data, MAPIT will match the characters you have entered as well as any following as though requested with an implicit trailing `*'. Entering "Oak" matches Oak, Oakdale, and Oakmont. In cases with multiple fields, the first field is a direct index into the related database and is fast. Following fields eliminate entries from the primary search which don't match these secondary fields by scanning through all matching primary keys, a potentially inefficient and time-consuming process for broad primary-key searches. For this reason, there are a number of different related queries using different primary keys. Some are faster for one thing, others for another. For example, you could look up all the cities beginning with the letter "S" in a particular country by using the "City Gazetteer" whose first field (primary key) is City and whose second field is Country. That process would be inefficient in that the query would scan through all cities in the world beginning with the letter "S" in order to find those in the country of your interest. A more efficient approach would be to use the "Cities in.." query whose primary key is Country and last key is City. Temper this warning, however, with the knowledge that the US accounts for some 75% of all cities in the database. If you're working with US cities, the difference between queries might not be as great in this case. Please note. Country names may not be as you think. England is listed as a "state" in the country of United Kingdom! As you enter the query menu, the mode you are in appears in the left footer: "Select modifiers and lookup". Click with the left mouse button over one of the top query fields to select that field for data entry. (Clicking with the right mouse at this point escapes you out of the query menu.) The query is case-independent. Enter a return or a tab to complete the field. You may also click either mouse key to end the entry. Click with the left to select the next field. When you are finished entering all query fields, click the "Lookup/More" field near the lower right section of your screen. (If you didn't end your last entry with a return, you'll have to click twice.) MAPIT performs the search displaying the results in the middle of the screen. As it finds matches, it updates the counter in the right footer. When the query is completely satisfied, the message "Finished" appears in the left footer. If there is more data to be displayed, the message is "More" and you must continue to click on "Lookup/More" to display the next page of data. At any time you can re-enter new data in the query fields, but for the lookup to act on a fresh primary key, you must click on the "Restart" field to return to the "Select modifiers and lookup" mode. After that you can select the "Lookup/More" field. Results from new queries are appended to old results. If you highlight any displayed result and select the "Return & Display" field near the bottom left of your screen, the query will end and your screen will be centered on the location associated with that entry using the current zoom factor. You can abort a query by selecting the "Cancel" field or by clicking the right mouse button. Please note that if you try to highlight an area of the results screen where there are no results, MAPIT will display the error message "DB read failure on record 0." Click or return to clear. You've done no harm. Available Database Searches Title Description City Gazetteer Alphabetical list of all cities. Cities in.. List cities by country/state/county Cities by State List cities by state/county/country Phone/ZIP's by City List US phones/ZIP's by city and state. Phone numbers are area codes plus exchanges (up to 6 digits) with no blanks, dashes, or parentheses. US Cities by ZIP List phones/cities by ZIP and county. US Cities by Phone List ZIP's/cities by phone. Country Gazetteer List countries of the world with International Dialing Codes. State (Abbr.) in.. List states/(US abbreviations) by country. Counties in.. List counties by country/state. Placenames List geographic placenames. Airports List many airports of the world. Towers (US) List US fire and radio/television towers. File Maintenance Each database query has its own maintenance screen controlling database name, index, and query program. Note that the paths are relative (do not reference an absolute path beginning with the drive's root) to the subdirectory "dbqs" where all query data is stored. There should be no need to make changes. Plot HP-GL/2 Output high-quality graphics to an HP LaserJet III (or better) laser printer, a plotter, or to an HP-GL/2 [or HP-GL] graphics file for import into an external graphics program or word processor. To change the default pen assignments, line type or width assignments, or plot borders or lat/long grids assignments, see the example pen definition file std.pen. Change a copy and invoke MAPIT with the command line calling parameter /pendefinition=my_file. See Appendix C: Pen Definitions for a table of colors and a listing of std.pen. The Landscape/Portrait choice refer, of course, to the plots orientation: horizontal or vertical and the Page Width and Height to the plot's dimensions in inches. Text Scale refers to the relative size of plotted text versus other graphics objects and defaults to a value of 1.0X. Changing the Text Scale to 2.0 doubles the size of the text. Borders refers to the heaviness of the lines which default to the 0.35 mm minimum on the LaserJet III. If you specify a lesser value, the minimum is used. Notice that Borders default to 0.5 mm being slightly heavier than default lines. You can also toggle borders, which frame the plot, on and off. Detail is a relative value (defaulting to 1.0X) indicating the detail of the data sent to your plotter. A detail of 1.0X will ship vector data in the detail normally displayed on your screen. MAPIT invokes dynamic line segment pruning during display to speed graphics repaint and to minimize clutter caused by many small single-pixel entities. While this works well for the relatively course environment of your display, plotting devices commonly support much finer resolution where the extra detail may be welcome. Increasing the detail to 2.0X, 16X, or FULL causes MAPIT to pass more detailed information to your plotter. If you are experiencing memory overflows on rasterizing (laser printer) plotting devices, reducing the detail to 0.7 or 0.5 may drop the output vector count to the point where entire plot fits within the device's memory. (Not plotting cities and text also helps.) Naturally the quality of the plot may suffer noticeably. Deep Scan is a toggle indicating the depth of database scan to be used in retrieving plotting data. Without it, a plot uses the same portion of the database used by the display. Below zoom 24, several less-detailed versions of the data are accessed to expedite repaint. Selecting Deep Scan forces MAPIT to reach deeper into its database and retrieve the most detailed version for plotting. If you're already at or below zoom 24, Deep Scan will have no additional effect. . The Printer/Plotter versus File choice selects whether the output is sent to your system's PRN device or to a file. If you select a file, MAPIT prompts you for a file name where the default file name extension is .hgl. Three other choices indicate whether this must be a new file, may be an old file which will be overwritten with the new data, or may be an old file to which the new data is appended. This final choice allows you to batch a number of plots into one file assuming your plotting device supports multiple plots. PCL Header indicates whether you are plotting to a Hewlett Packard PCL 5 (Printer Control Language) supporting device such as an HP LaserJet laser printer. If your output will eventually go to a word processing document or to a pen plotter, the PCL Header probably is not desirable. Its purpose is to switch the printer from text to plotting mode. The Plot Full Map/Plot Selected Area menu choices begin the plotting process. In either case the selected area is guaranteed to be plotted with more added to the sides or to the top and bottom depending upon the selected aspect ratio (Landscape/Portrait and plot dimensions) versus the chosen area. Plot Full Map, of course, selects your entire screen, a Landscape conformal area. Plot Selected Area gives you the chance to select the corners of a rectangle defining your plotting area. Your original chosen area is outlined in red while the recalculated (to fit the aspect ratio) area is outlined in yellow. You are given a final chance of aborting or continuing the plot after the actual plot area is outlined. Abort is the most direct way of aborting the plotting process before you begin. Plot PCX With Plot PCX, you can output colorful .PCX screen shot files directly without the need for screen capture by an external program. Invert temporarily switches black and white map colors without changing other colors during creation of the output .PCX file to lighten the effect of the otherwise black background. You must choose a File name for output. The default name extension is .PCX, a format read by many paint programs including Windows' Paintbrush. The overwrite/new only choice indicates the action to be taken if the named file already exists. You have the choice of plotting the Full Screen which includes the menu and status lines, the Full Map, or a Selected Area. With the latter choice you must select the corners of a rectangle defining the area to plot. The fact that .PCX screen dumps are limited to the resolution of your screen, by selecting only a portion of your screen with this latter choice you may be substantially reducing the resolution of the captured area as well as reducing the size of the output file. In other words, best results (and largest files) are obtained by selecting as large an area to plot as possible. You may still need to use external screen capture such as Print Screen from within a Windows DOS box (see Making Maps/Screen Capture) if you need to show such MAPIT details as a pointing cursor or the menu system in use. GPS/Markers Display real-time moving markers communicating with MAPIT through a dBASE IV interface file. MAPIT cooperates with GPS, an external 16 bit Windows program which updates file GPS.DBF with live data from the NMEA 0183 output cable of a GPS receiver. SIMULATE, a DOS-based simulation program included with MAPIT, also drives markers. You can use your own external program to update one or more database records and monitor the positions by moving markers. The square markers may be labeled showing a name, heading, speed, and time, as well as displaying an arrow indicating direction of motion. The frequency of database polling to detect changes is variable with lower limits in the sub-second range. The display can be tied to follow one marker if it moves out of view. Unlike entities which are stored in the .MP3 database and are limited to a locational accuracy of approximately +/-100 feet, the placement accuracy of moving markers is limited only by the precision of the data passed through the interface database. Active must be selected for MAPIT to read the database specified under Interface DBF. If the user exits MAPIT with a database open, upon restarting, MAPIT tries to open the same database with the same display conditions. Note that while Active in the context of this menu refers to MAPIT's attempt to open and process an interface database. In order to be displayed, each record in said database must also have its "active" field set true by its controlling external program. Min zoom is a threshold value indicating at what zoom level markers will become visible. The default value of 0 implies that markers will always be visible. (At the Standard World display, the zoom is 1.) Color is the default color number for displaying markers when their corresponding database records don't specify a particular value (i.e. have a value of -1). The default default color number is 4 or red. Scan delay provides a lower bound for the delay between subsequent reads of the database and the display of updated markers. The default is once a second. When MAPIT is idle (you're not in a command or menu), MAPIT will read the database and update marker locations no more frequently than once a Scan delay. Database processing and marker display times are dependent upon the number of records read from the database and on the amount of information displayed with each marker and cannot be guaranteed. If you specify a one second delay, that delay will be introduced between each redisplay of the markers. Working in MAPIT will stop the redisplay until your activity is over. You can set the delay down to 0.01 seconds, actually to one clock tick, or 1/18th of a second. The flicker rate of the mouse icon may increase as you shorten the delay. You can auto track or follow one marker icon. If a marker moves off the screen, MAPIT will move the display window to follow it. Auto track is a dual-function menu item. It toggles auto tracking on and off, and if you don't select the default entry with a simple return, accepts input of a new marker name. The default marker name is "GPS", but you can enter any marker name from the current database. Be careful. MAPIT doesn't allow you to select a name not in the current database and will revert to the old name. Marker trails retains the temporary graphics of the square icons showing the position of past locations of markers. Because these trails are retained in temporary graphics only and are not saved as permanent entities, they disappear the next time the screen is redrawn. Display name toggles the name line of moving marker icons. A name may be up to 20 characters. Display speed toggles the speed/heading line of moving marker icons. The units of speed are determined by the GPS program or other program which feeds the interface database. The value stored in the speed field is used directly. MAPIT attempts no conversion to other units. Display time toggles the time line of moving marker icons. This field indicates when the database-updating program last updated each record. In fact, MAPIT will update a marker only if its active field is true and if the time is different from the time the marker was last displayed. Note that the time displayed by GPS units may be Universal Time (GMT) and may not reflect your local time zone. Register PCX MAPIT supports the display of single-screen .PCX files overlaying regular MAPIT entities. The purpose of this feature is to support using maps of very small areas as backgrounds for MAPIT operations. If, for example, you wish to display the boundaries of a farm or a state park copied from another document, MAPIT must know where to place this detailed overlay and at what scale. This process is called registering and involves matching two (distant) points on the .PCX overlay with two points or lat/lon locations in MAPIT. This menu option supports that registration process. Once registered, a .DBF holding registration information can be called and displayed by a type `M' scan table record. The .PCX file must be a 16 color image, ideally the type created by the old Windows 3.1 PaintBrush program. MAPIT displays .PCX files using its own color palate and may thus change the colors of the .PCX file. 256 color files don't map properly and are unusable. Convert them first to 16 colors using programs such as Paint Shop Pro. Work from top to bottom in the menu and pay attention to instructions in the footer. Display PCX accepts the file name of the .PCX you are registering and displays it. Align PCX is the critical command in this sequence. It prompts first for a point on the PCX which you must pick with the mouse and then asks for the corresponding point on the map which you may enter with the mouse or by position menu. (A return.) It does this for two points. MAPIT will display the registration you've just entered for you to check. You can repeat this step any number of times. Registration implicitly establishes a scale which MAPIT will return to every time you access this PCX overlay. Name map is the text by which a registered PCX will be known by in MAPIT. It will be displayed below the PCX map symbol (the letter "M" enclosed within a rectangle). Register in queries you for the name of map entity DBF which will hold references to this and perhaps other PCX maps. If no file exists, MAPIT asks if it should create it. Give the name of a file on a writeable drive (e.g. C:pcxfiles) and not the readonly CD-ROM. The file you created or added to in Register in must be referenced in your scan table for your PCX maps to display. See FILES/Add Scan Table Record. The entity type field E_TYPE must be set to "M". EDIT Move, duplicate, change, insert, and delete objects or entities in various MAPIT databases. DBF Entities Move, duplicate, change, insert, or delete .DBF point entities. Move This command uses a selection sequence common to many other commands in MAPIT. Select an entity by positioning the cross hairs over the origin of the DBF entity you wish to move. The origin of DBF entities are commonly a point in the center, the user-defined origin point of figures, or a point at the lower left corner of the first character in text. Click with the left mouse button to make the selection or with the right to abort. If you miss with the left click and don't select any entity, you can click again immediately. Your selected entity will become highlighted and a message in the footer will display the action and entity type. (See the type table in Add Scan Table Record.) A floating menu asks, "Correct entity?" Answer "Y" or "N" to proceed or not. An affirmative response returns control to the cross hairs. Move and click with the left button to choose a new location, with the right to abort the process, or use the Enter key to bring up a keyboard- controlled floating menu for exact positioning. This sequence is typical of selecting DBF entities. The move command changes the location of DBF entities. Duplicate Duplicate uses the common selection sequence to replicate the original entity in a new location. The original entity can be duplicated any number of times and can be located by either left mouse-click positioning or by keyboard entry. The new entities are stored at the end of the original entity's data file. Change Change invokes the common dBASE Editor described in FILES/Edit DBF automatically opening that record in the dBASE file corresponding to the selected entity. The dBASE Editor edits the entity record as a general DBF record and without any special intelligence. Therefore you should avoid changing the key field (TILE) or the LATITUDE/LONGITUDE fields from which the TILE's value is calculated. (Small changes within the same 5 degree by 5 degree tile are okay. Use the Move command which updates these fields properly.) An improperly assigned TILE number may allow it's entity to display in certain circumstances, but not in zoomed situations. Also you won't be able to select the entity with the Change command to change it back. (Use the FILES/Edit DBF command to access and fix the errant record.) You can use the Change command to determine in which file an entity is stored. The file name and record number are displayed in the footer. The database scan caused by the Change command displays a small dot at all entities' origins in the highlight color in the 5 by 5 tile in which you click. If you aren't sure exactly where an entity's origin is, clicking near it with the Change command will cause it to be highlighted. Click near enough of course, and you'll select the entity itself, which is generally the point! Change is useful in that it allows access to entities marked for deletion permitting you to undelete them. (Del and Del) Because deleted items aren't normally displayed, use the click-in-the-same-tile technique described above to display the origins of deleted entities. Clicking the origin of a deleted entity will display it temporarily to allowing you to determine if you've got the entity you want. If two entities overlie each other exactly, you can access only the top one. If you want the bottom one, mark the top one for deletion and then use the Move command to move the now-exposed bottom entity slightly to allow direct access to it. Select and undelete the old top entity. Insert Insert asks you to enter an existing database name to which to add a new MAPIT DBF entity. If you want to create a new database, use the FILES/New DBF menu item to create the database and its first record. Insert determines the type of entity you are adding by accessing the first record of the database. You are prompted to select a location for this entity using the cross hairs or keyboard entry. Finally the Insert command invokes the dBASE Editor to allow you to personalize the new entity further. Delete The Delete command is a short-cut way to select and delete DBF entities. After you have selected an entity with the mouse-controlled cross hair, Delete displays both the entity's file name and record number and asks you if you are certain you wish to delete it. You can always undelete it with the Change command by entering the Del key from within the DBF Editor. Layers A layer is really nothing more than a number assigned to each MAPIT entity. Color and visibility are associated with these numbers or layers. MAPIT supports up to 256 layers. Layers 0 through 119 are reserved for the main MAPIT database. Layers 120 through 255 are left for user input. By default, objects you enter are placed on the Current Layer and are displayed in that layer's color. The sub menu displayed by the Layers command shows at a glance the Current Layer, its color, and whether all, some, or none of the layers are visible. Current Layer Use the Current Layer command to reset the Current Layer to a different value. All entities defined after this time will be assigned the new Current Layer. Already-defined entities will retain the Current Layer assignment in effect when they were created. Entering a return with no other value after display of the default value [nn] is a do- nothing action which retains the current Current Layer. Layer 120 is the default Current Layer. Color Color is a display menu item showing the color assigned to the Current Layer. One color is assigned to each layer. Change Color Change Color displays yet another sub menu which you can use to display and change the color of any layer. Assigning new colors to layers allows you to control the colors with which entities are displayed. You could, for instance, turn all rivers from blue to red by reassigning the layers on which rivers are defined to color number 4, red. You can assign any color to any layer you wish. Objects on that layer will be shown in that color the next time they are displayed if they themselves default to the layer color (have a color of -1). Clicking on Layer changes the focus to another layer and displays its color swatch. Use Color to assign a new color number. All to default is dangerous. With one click you can undo all your past color reassignments. Color Number Color Name Color Number Color Name 0 black 8 gray 1 blue 9 light blue 2 green 10 light green 3 cyan 11 light cyan 4 red 12 light red 5 magenta 13 light magenta 6 brown 14 yellow 7 white 15 bright white There are 16 colors, 14 of which are assigned to layers on a rotating basis. Colors 1 through 14 are assigned to layers. MAPIT uses Black to overwrite and delete and Bright White to highlight during object selections. See Appendix A for a complete layer color assignment chart. Visibility All layers begin life in an active state but can be turned off to make their entities invisible for display purposes and immune from any EDIT commands. Turning off a layer does not remove from the screen already-displayed objects that reside on that layer. They will be missing on the next repaint. This technique is how the DISPLAY toggles work. Similarly, you can Copy & Delete only objects which are on "on" layers. Turning off a layer or range of layers is like read/write- protecting them. All visible Clicking All visible turns on all layers. Make visible Make visible allows you to turn on a single layer or a range of layers. Make invisible Make invisible allows you to turn off a single layer or a range of layers. All invisible Clicking All invisible turns off all layers. Private File Display the name of the current private or extended file, the file to which all line or .mp3 entity insertions are stored. Use the calling argument /extended=file_name when starting MAPIT to assign a different private file. Note: Menu items below this point refer to objects stored in the extended .MP3 file. Use DBF Entities above for the new style .DBF point entities. Lines must, of course, always be saved in .MP3 files. Insert Insert objects into the extended database on the current layer and displayed in the color of that layer. The extended data file is updated at the completion of each entity's entry reducing data loss because of power failure. With the exception of line and xline, the entities described in this section are point entities which can also be held in .DBF entities described above. city Enter a city by filling in the information requested by the entry screen. MAPIT will initially ask for a name and a location before continuing to the entry screen. The Min and Max Zoom Factor are those zoom factors for which the city first appears and then disappears. Zero means it never disappears. Above, Even, and Below refer to the choice of placing the city's name exactly to the right of the marker or offset above or be- low to reduce conflicts with nearby cities. A forced color is a color number which takes precedence over the default color of the assigned layer. Replace inserts the new city data at the initial requested location while Move allows you to reposition the city which you entering by clicking with the left mouse button. Abort, of course, aborts the entire entry process. Displaying cities of all sizes, all the time, would clutter the screen. Therefore cities are made visible by zoom factor according to size: Population Minimum zoom (US) Minimum zoom (elsewhere) Font Marker > 500,000 or national capital 10 10 1 double circle > 50,000 30 30 1 circle > 5,000 300 50 1 small circle > 0 750 150 4 small circle figure The figure option is a powerful means of replicating miniature simple line drawings throughout the displayed map. You must define figures before using them (see FIGEDIT), storing them in the file std.fig and inserting each figure by name in a map's database. Multiple instances of a figure may be inserted. The actual figure is not included in the database, only a reference to it by name. For the figure to be displayed properly, the figure file you used while inserting your figures must be present. You can, of course, globally change a figure by replacing it in the figure file with another of the same name or using an alternative figure file with similarly named figures. Choosing the Insert/figure menu option brings up a window containing a list of figures in your figures file. As you move the mouse over the name, the name of the current figure is displayed in the status line at the bottom of the screen. Depress the left mouse button to choose a figure or the right one to abort. Cross hairs appear to help you in the initial positioning of the figure while the changing latitude/longitude is visible in the right half of the status line. Pressing the left button positions the figure and opens the menu pictured above. Use this final menu to change the figure's Scale (size), Layer, Forced Color if any, and to Save as is, Move, or Duplicate. Duplicate means to place additional copies of the figure at other locations with the left mouse button finishing with the right button. line You can enter multisegmented lines of any length. Hold the left mouse button down and notice the temporary "rubber band graphics" tying the starting point of the line segment to the current mouse position. As you move the cursor, notice that the latitude and longitude on the status line are continuously updated to aid in accurate line positioning. Releasing the left button fixes the last line segment. If, while you are close to the end of the last segment (the release point), you press the left button again, you'll begin a new segment connected to the last. On the other hand, if you click the left button while you are a distance from the end of the last segment, the line is ended, the data is stored, and the temporary graphics are replaced with a permanent line. If you click the right mouse button while inserting a line, one segment of the temporary line is deleted for each press and release. If you try to back up beyond the start of the first line segment, the entire EDIT/Insert/line command is aborted. No data is stored. There are limits of approximately 100 feet (somewhat less at higher latitudes), to the precision of data entered into the database. If you try to enter data with more precision than this, the temporary graphics will look good but will not be permanently reflected in the database, as your first repaint will demonstrate. xline Xline refers to exact lines which can be placed more precisely via the keyboard. stroked text Stroked text is drawn directly over a portion of MAPIT's display. The program first asks you to choose a temporary location on which the text will be drawn as you compose and change it. Choose a location which will give you adequate room to see and deal with your text; you can change to the permanent location later. As you enter the text from the keyboard, the stroked text will appear in default font and size at the temporary location. Special characters you have mapped to your keyboard can be used, even though they may not be displayed properly in the default font. (Function Keys F1 through F12 are mapped to ASCII characters 20 through 31.) Entering a return takes you to the start of the next line under the first character of text you entered. You can correct text by backspacing to the incorrect letter(s) and reentering. Press Esc to exit the text entry mode. Next, the program displays an option menu with which you can change the attributes of your text or edit the text itself by choosing Text. In the edit mode, your current position is at the end of the text string you've previously entered. On this menu, Min and Max Zoom Factor refer to the zoom factors at which the text first appears and disappears as you increase zoom. If you leave the factors at zero, the text will fist appear when it grows to a legible size in the case of Map Relative text (see below for discussion of the Map Relative text entry mode). Remember that, for text to be visible, its origin (the insertion point) must be visible. The text may disappear as you zoom in, unless its origin is exactly in the center of your window. This happens because the origin has fallen outside the window. Seven fonts are supplied in the MAPIT file std.fnt; the system capability is ten: Font 1 is the default. If the std.fnt file is missing at program startup, stroked text will not display. If you call for a font that has not been loaded, the system uses font 1 in its place. Font 1 is the simplest and displays fastest. The more complex a font (that is, the higher its number), the longer it takes for a given text string to display. The two modes for stroked text entry are Map Relative and Screen Relative. Text which is Map Relative scales with the size of the map display as you zoom in and out. If you zoom out far enough, it becomes too small to be seen. Screen Relative text, on the other hand, is always the same size relative to the screen no matter what the zoom factor. It never grows or shrinks. Size is an arbitrary number that is proportional to the size of the text on the screen and inversely related to the current zoom factor. The system suggests a text size for which the newly entered text will appear the same height on the screen independent of zoom. Consequently, the greater the zoom factor, the smaller the suggested text size. If you enter Map Relative text size of 0.2 at one zoom value and 0.2 at another zoom, the text will be the same height in both cases. The maximum size for Map Relative text is 10. Screen Relative text will always display at the entered size independent of zoom. Not all sizes of Map Relative text are legal. This fact is most noticeable for large sizes and results from the encoding mechanism 10/n where n is a positive integer. A value of n = 1 yields a text size of 10, 2 yields 5, 3, 3.333, and so on. A Map Relative text size of 8, for instance, is impossible to attain, its n integer falling between 1 and 2 (1.25 exactly). This shortcoming is not as significant for smaller text sizes. Stroked text can be entered at any angle divisible by 2. If you try to enter text at 45 degrees, for instance, MAPIT rounds that value to 46 degrees and then draws the text rotated around its origin at that angle. Zero degrees is horizontal (right reading) and 90 degrees is vertical (up reading). You can force the text to be placed on a layer different from the default layer and to have a forced color if so desired. Finally, you can either Abort the text entry, Save the text as is, Move the text to another location, or choose one or more additional locations. When you choose locations, the cursor changes to cross hairs for more accurate placement and the status bar displays the exact latitude/longitude of the cursor. You can insert the text multiple times in different locations by clicking the left mouse button. Click the right button to abort/finish the operation. hidden text Hidden text hides behind a small triangle until you bring it forward by clicking the triangle with the left mouse button. When you enter hidden text, the entire screen is filled with a non scrolling window on which you can type any text as you would with a simple editor. The program uses the default screen font. Word wrap is automatic. The Enter character is the paragraph delimiter. As in stroked text, press Esc to terminate text entry. (You can to return to edit hidden text if necessary.) After you have terminated text entry, the program displays an option menu with which you can change the layout of your text: Min Zoom Factor is, again, the zoom factor at which the hidden text marker first becomes visible. This value defaults to about 2/3 of the zoom factor in effect when the hidden text is entered. A value of 0 or 1 assures that the marker is always visible. (Hidden text markers are Screen Relative; they are of constant size and always visible except as limited by Min Zoom Factor.) Window Width and Height display two values each. The first is the current value and the second is the computer's suggested setting. There is interaction between width and height. The computer calculates the minimum width based on the longest line and the screen width, and given that width, calculates the required height. If you enter a new width or height, the computer recalculates its suggested values. You must then change the other parameter (height or width) to the suggested setting, or reset your previous entry. Sometimes several iterations are necessary to produce the window you want. At any time you can View/Edit Text to review the current arrangement or to edit the text. View/Edit (Autosize) resets actual values to MAPIT's preferences. In the absence of any overriding standards or artistic opinions, you will probably want to use wide short windows; they are easier to read than narrow tall ones. When you view hidden text, MAPIT opens whatever size window you have created and positions it as close to the marker as possible. Choose Location(s) or Abort as you would for Stroked Text to insert zero or more instances of this hidden text. Selecting Several of the following EDIT commands share the concept of selecting objects on which to perform an operation. Selecting consists of drawing a rectangle on the screen using the mouse. The database[s] are scanned for objects falling within that rectangle; when found, the objects are highlighted in bright white. (The database scan can take a significant time.) At the end of the highlight process, MAPIT asks the user if he wishes to continue. The user responds affirmatively with Y or y (yes), or negatively with any other input. The command either continues or aborts. The yellow selection rectangle remains to indicate the extent of the operation. To abort any selected option at the start, click on and off without moving the mouse. This creates a null-sized selection rectangle. Change Change .MP3 objects once they have been inserted into the extended database. If you try to select an entity on your screen and it doesn't highlight, it either is not a .MP3 entity or it is not in the extended file where it can be changed. city Position the mouse-controlled cross hairs over the city to be change and click the left button. A menu similar to the Insert/city menu provides control. figure You must select a figure by including its origin in a selection rectangle (see above). Once selected, a menu similar to the Insert/figure menu provides control. Note: If you change an existing figure's property such as color and then choose Duplicate, the color of the original will not be permanently changed but will upon repaint display as it was originally. The duplicate figure, however, will permanently display the new changed color. If you want to change the original, you must Replace it. line To change a line, you must include at least one of the line of interest's nodes within the selection rectangle. MAPIT highlights the line when it is selected and a menu displaying the Layer, Forced Color, and the commands Replace, Move, and Abort appears. Replace applies any layer or color changes to the existing line. Move permits movement of each of the line's nodes to a new location (within the approximate limit of 7 degrees from the line's first node). The cross hairs jump to the selected line's first node if visible. When the cross hairs are close to any node, a rectangular box appears around that node's position: you can move the selected node by depressing the left mouse button, dragging it to a new location and releasing the button. You can do this for any number of nodes in a single line. Click the left mouse button outside a selection box to complete the change to the line. Clicking the left button aborts the line change. You cannot change a line in the main database. (If you really want to, make a backup of the main database and open MAPIT with a nul main database and /extended=world. All changes will then be made to what is normally the main database. Be careful!) stroked text Select stroked text by including its origin in a selection rectangle. Recall that the origin of stroked text is at the baseline and left of the first letter. Once selected, a menu similar to the Insert/stroked text menu provides control. hidden text Position the mouse-controlled cross hairs over the hidden text to be change and click the left button. A menu similar to the Insert/hidden text menu provides control. Delete Deletes the selected objects from the extended but not from the main database. Note that deleting while you are zoomed in very close may eliminate not only visible objects, but those which are invisible at your current zoom factor. Deletion does not shrink the database. Assign to Layer Move selected objects in the extended database from their current layers and assign them to a new layer. Object data are not moved. Both visible and invisible objects are reassigned. Copy Copy selected objects from the main to the extended database. If obviously visible objects are not selected, they may well be in the ex- tended database already. Objects cannot be duplicated in the same database. Both visible and invisible objects are copied. The MAPIT copy function does not preserve original regions. (See the discussion of regions under Working with MAPIT Files/Regions.) Copy & Delete Copy selected objects from the main to the extended database and then deletes the originals. The purpose of this command is to transfer data once and only once from one file to another. You must invoke MAPIT with the /delete command line argument because the main database is normally opened read-only. If obviously visible objects are not selected, they may well be in the extended database already. Both visible and invisible objects are moved. DISPLAY Control the display of MAPIT features Clicking on selections toggles on and off the layers on which these features are stored. Grid Toggle on and off latitude/longitude markings. Turning off the grid sets previously grid-colored pixels black. These black pixels may obscure object detail until the next repaint or overwrite. All Features Displays or changes the status of which layer features are active. `?' indicates some are and some aren't. A check indicates all are. Cycles through the choices. Selecting features for display is accomplished in the following menus or by turning layers on or off directly in the EDIT/Layers menu. The following major feature types call menus controlling the display of specific features/layers. Selecting all features may, depending on the zoom factor, slow down screen repaint and result in a jumble of confusing lines. Not all features are available at every zoom level. Small rivers become visible at zoom 24 and beyond. (Major breaks are at zoom 2, 6, and 24 for line (.MP3) entities.) Point entities such as cities and text are also phased in at different scales. Some cities become visible at 1:4,000,000, some at 1:2,000,000, and the smallest at 1:1,000,000. The thresholds for point entities are set in the scan table which you may modify. For instance, you could set all cities to be visible at any scale and in the Cities & Landmarks menu turn off the text to show only the symbols. Displaying at a zoom of 1 would give an indication of population density around the world although the screen would take quite a while to paint as MAPIT processed some 200,000 cities. Boundaries: Rivers: Roads: Railroads: Utilities: Transportation Structures: Please note that airports are controlled by Transportation Text under Transportation Structures. Data near England, Japan, and India is missing entirely and is unavailable. Cities & Landmarks: Ocean Features: The oceanographic contours are, in general, 1:3,000,000 scale while the ones marked as approximate are much less detailed. Plate Boundaries are self-explanatory. Fracture Zones are lines of weakness in the earth's crust that cross the diverging sea floor boundaries at right angles forming short areas where plates grind past one another. Magnetic Lineations are more mysterious but appear to be small local fields induced by the magnetic minerals contained in the spreading volcanic rock masses comprising much of the ocean basin floor. Land Cover: Units of Measure Cycle through Statute Miles, Nautical Miles, and Metric. Used in the display of distances. Lat/Long Format Cycle through Degrees, Minutes, Seconds, and Decimal Seconds. Used in the right footer to display the location of the mouse. Screen Width Measured in inches to calculate the scale displayed in the footer. Version Particulars about this product and its operation. Virtual memory refers to the amount of conventional memory dedicated to supporting virtual memory (XMS, EMS, or disk) activity. Free refers to the actual amount of conventional memory unused by MAPIT but necessary for proper operation during certain commands. This figure never grows too large, the excess being allocated to virtual memory. The number and size of regions reflects the amount of data in your main and extended databases. Working with MAPIT Files: File Names and Conventions MAPIT's mapping data is stored in special binary files having the extension .MP3. These files have a highly structured internal format designed to speed the display of data on the screen. These files also have the useful property that two or more .MP3 files can be concatenated together to form a new larger file. (See the example below of using the DOS COPY command with the /B switch.) If the internal structure of a .MP3 file becomes corrupted, MAPIT responds with an error message stating that it has lost sync during a file read. No data beyond that point is available to the user. The file must be replaced. MAPIT uses two default file names for storing .MP3 data: WORLD.MP3 for its primary database and EXTENDED.MP3 for the current private database. You can run MAPIT against other primary and extended databases by explicitly specifying their names as you invoke MAPIT: C:> MAPIT alt_db /entended=private MAPIT expects alternative databases to have the .MP3 extension unless you explicitly invoke them with other extensions. When you enter data into MAPIT, the data is stored in the private file EXTENDED.MP3. You should use private databases when storing your own data or transferring it to others. The smaller file size makes these actions much more efficient. You can combine several of your private files with the binary COPY command: C:> COPY /B FILE_1.MP3+FILE_2.MP3+... BIG.MP3 or C:> COPY /B FILE*.MP3 BIG.MP3 Remember that, once files are combined, they can't be separated. Don't delete the originals until you are sure everything is all right. And don't combine your private data with the primary MAPIT database WORLD.MP3. Private Database Management As mentioned above, MAPIT uses the default file name EXTENDED.MP3 for storing your private database. Suppose you want to make and support two private databases, each to be distributed to a different set of users. The first involves the Philippines and the second Hawaii. Obviously you don't want to use the default private database name EXTENDED.MP3. When you're working with the Philippines data, start MAPIT using: C:> MAPIT /EXTENDED=PHIL and when working with Hawaii, start MAPIT using: C:> MAPIT /EXTENDED=HAWAII Now you have two separate .MP3 files, each with its own data. If you or your users want to view that data, you can do so directly (without the benefit of MAPIT's database) by entering C:> MAPIT PHIL More than likely, you will want to use the backdrop of MAPIT's database in the normal way. If in the future you have a user who wants to use both the Hawaii and Philippines data at the same time, combine them with the binary COPY command: C:> COPY /B PHIL.MP3+HAWAII.MP3 COMBO.MP3 Regions If MAPIT had to traverse the entire 250MB WORLD.MP3 database every time it re-displayed an image, screen repaints would be extremely slow. The primary method MAPIT uses to speed the display from large databases is to divide the data into regions. Regions are special database header records whose extents are defined by the mapping data following them. Each .MP3 must begin with a region header. When you add objects to MAPIT, the first record written to a new EXTENDED.MP3 file is a region header. As you add more and more data to the personal database, the data is appended to the end of the file while the region header is updated to reflect the new data. If, for example, all the data you enter is centered in the Indian subcontinent, the total extent of this new data updates the region header. When India is not on the screen, the EXTENDED file is not even scanned for possible displayable data. Its region header indicates that none of its data is visible. Region headers are created automatically, but you must be aware of them if you try to import or enter large amounts of data. The only way for you to start a new region header is to begin a new EXTENDED.MP3 file. In other words, rename the old EXTENDED.MP3 file to force the creation of a new EXTENDED file when you enter more data. When you finish, concatenate the two files together to get a single file with two region headers. This only becomes an issue when your files grow so large that a linear scan begins to slow down MAPIT's overall performance. Then you want to divide your large single-region file into one with several non overlapping regions. How can you create multiple regions from a large single-region file? (See the utility MP3MOD for an alternate method to that outlined here.) Rename EXTENDED.MP3, make a backup, and then open it as MAPIT's primary data file remembering the /delete switch. Be sure there is no EXTENDED file. Copy/Delete region-sized areas from the primary to the secondary file. (Copies are always from the primary to the EXTENDED file.) Exit MAPIT and rename EXTENDED.MP3 - perhaps to X1.MP3. Repeat these steps until all data has been copied and deleted from the original primary file. Finally, combine the separate files using the binary COPY command: C:> COPY /B X*.MP3 TOTAL.MP3 The final result is a file with manageable regions. MAPIT's WORLD.MP3 database consists of a great many regions split on 5 x 5 degree tile boundaries, carefully constructed and designed to give reasonable performance in spite of the vast amounts of data involved. If you try to copy a sizable portion of this data to your private database, all copied data will be stuffed into one 'super region' in EXTENDED.MP3. Performance when accessing your private database FIGEDIT FIGEDIT is the figures creation/editing program used to supply figures for MAPIT. Figures are small drawings that you can insert one or more times in your maps. The figures are stored in files ending in the extension .fig. At startup, MAPIT looks for the file STD.FIG and tries to resolve references to figures names from that file. FIGEDIT is an editor of memory-resident objects. Run FIGEDIT without any command arguments. When it starts up, there are no entities in the current figure and the current figure is nameless. FIGEDIT displays a menu along the top of screen from which you can choose items. The status bar at the bottom of the screen shows the default figure scale, entity count, figure title, and file name. Menu Commands: FILE New Creates a new file to hold figures data. Open Opens a file for input/output to FIGEDIT. The names of all figures contained in the newly opened file is listed for informational purposes. Enter return or click the left mouse button to proceed. Close Saves and closes an open figures file. Exit Saves and closes an open figures file if there is one and exits from the FIGEDIT. FIGURES The Figures menu controls the loading and display of figure objects found within an open figures file. Redraw Full Redraws the figure currently loaded into memory to be redrawn at full size, the size in which editing is done. Display at Scale Display the current figure at the default scale displayed in the status line. New Begin a new in-memory figure. Load Load a figure from those in the current figure file. Click the left mouse button over your choice of names on the screen. Save Save any changes made to the current in-memory figure to the current figure file. Save as Save the current in-memory figure under a new name in the current figure file. Remove Delete a figure from the current figure file. The deleted figure is loaded into memory giving you a chance to save it in another figure file or under another name. INSERT One builds figures by entering objects from the INSERT menu. As construction continues, a tally of the entity count is displayed at the bottom of the screen. There is an entity count limit of 100. The more complex objects consume more entities, building to that limit. As you insert objects, they are displayed on the screen at 100-percent size. Remember that the final display size will be much smaller. The default is 10 percent. Detail will disappear or will clutter the final figure. Line Insert multiple straight-line segments by clicking and dragging with the left mouse button. Double click the left button to end, the right button to back up a segment. Rectangle Insert rectangles by specifying the opposite diagonal corners of the rectangle you wish to enter. Arc Enter the center and the radius of the arc. FIGEDIT draws a complete temporary circle and asks you to enter start and stop angles. Arcs are constructed counter-clockwise. The start and stop angles are points relative to the circle's center (not necessarily on the circumference) anywhere on the screen. Enter the start angle first, followed by the stop angle. The circle will disappear and the arc will appear in its place. Circle Enter the center and the radius of the circle. Ellipse Insert ellipses by specifying the opposite diagonal corners of an enclosing rectangle. You can enter only horizontal or vertical ellipses. CHANGE Origin Each figure has an origin. When you insert a figure into a map, you actually specify where the origin of the figure will be placed. The rest of the figure is displayed relative to the origin. FIGEDIT marks the origin with a blue cross. Its default position is the screen's center. You can change that location to any place on the screen. Scale Normally figures are not displayed in maps at the scale in which they were drawn, but as smaller images. The default scale is 10 percent, but you can change that to any value you want. Delete Delete allows you to remove entities, but you must be careful. Move to the end of a line, to the radius of a circle or arc, or to the major or minor radius of an ellipse and press the left mouse button. A small square appears if you've chosen an object, and the object type currently being considered appears in the status line. After affirming the deletion, the entity remains until the next repaint. If more than one entity occupies a spot, the first entity laid down is chosen. Be aware that an arc can be selected for deletion anywhere on its radius, even on the on the clipped (non displayed) portion! Getting a deletion square in the middle of nowhere means that something is being deleted! Tips: You needn't be in a figure or file to begin editing. You can transfer figures from one file to another: * Open a file * Load a figure * Save-as to another or new file. The key to good figures is to keep them simple. Detail which looks good at full screen is clutter at 10 percent. (Here's where artistic talent is invaluable!) Like .mp3 files, .fig files can be concatenated with the binary copy. GEOCODE This MAPIT utility geocodes or adds latitude/longitude information to records of a dBASE IV file. An input file must be run against a key file to yield the output file. All these files must be in dBASE IV format. The GEOCODE Command Line: Usage: GEOCODE [input_file] [output_file] [/options...] where input_file - an optional dBASE IV file holding the records to be geocoded. Assumes a .DBF extension. output_file - an optional dBASE IV database name in which the geocoded data will be stored. There are normally more fields in the output_file than in the input_file. If the /inplace option is used, the output_file must not be specified. Extensions supplied. options: /inplace - Update the input_dbf. Output fields must already exist. /lookup_dbf = - a dBASE IV file holding the latitude/longitude and a key field. Assumes a .DBF extension /key= - the primary key field name. e.g. ZIP /k_length= - the match limit on the primary key. /definition= - a .DEF file holding definitions which may augment or replace those given here as command line arguments. Command line arguments take precedence over statements in the definition file. /append - add newly geocoded data to the end of the output_file. /overwrite - delete any data in an existing output_file before adding the newly geocoded data. By default, an error message is issued if the output_file already exists and neither the /append nor the /overwrite option is given. /matched - transfer records with 1 or more matches in the lookup_dbf. /unique - transfer records with exactly 1 match in the lookup_dbf. /first - don't search beyond the first match in the lookkup_dbf. If there are mutiple, the geocoded result is the average of all matches unless this option is used. /max_range= - include only records within this range. /min_range= - include only records beyond this range.. /units= - min/max range units: miles, nmiles, kilometers, km, yards, feet, ft /center= - calculate the distance from this location to the geocoded distance for each record. No space allowed between latitude and longitude unless the string is delimited by quotation marks. e.g. /center=40:30.84N79:36.94W /version - display program's version. /? - display this output. Definition File: GEOCODE's command line arguments are so numerous that you can place some or all of them within a definition file having the extension .DEF. This file is free format on a line-by-line basis and uses the `;' character as a comment. Everything to the right of the comment character is ignored. The order of statements is not important. Certain combinations are illegal. Many of the following commands can also be entered as command line arguments. For instance, UNIQUE: corresponds to /unique. Selections made at the command line override those made in a definition file allowing you to have a general definition which you can override easily at program invocation. Reference your definition file from the command line with the /definition option as in C:\> geocode /definition=my_def Specify the input file: INPUT DBF: file_name INPUT MDX: file_name ; optional INPUT TAG: tag_name ; not supported INPUT DBF is the database you want to geocode. In general, it makes no difference if the input file has an index (.MDX file). If you specify an INPUT MDX and an OUTPUT MDX, GEOCODE will try to create a similar index for the output file. Specify the lookup file: LOOKUP DBF: file_name LOOKUP MDX: file_name ; defaults to LOOKUP DBF LOOKUP TAG: tag_name ; defaults to "DEF_TAG" LOOKUP EXP: dBASE_Expression ; needed if no .MDX exists for LOOKUP DBF. The LOOKUP DBF must have an index file/key. The MDX file_name defaults to the DBF file_name and the tag_name defaults to "DEF_TAG" unless otherwise specified. If no LOOKUP MDX exists for a DBF, you must specify a dBASE_Expression which, in general, consists of one or more field names connected with operators. You can define multiple tag/expression combinations in any one MDX but can use only one-at-a-time. This puts several indexes into one MDX file. The following, for example, is legal: LOOKUP DBF: zipphone LOOKUP MDX: zipphone LOOKUP TAG: def_tag ; 1st tag LOOKUP EXP: upper(zip) LOOKUP TAG: city_state ; 2nd tag LOOKUP EXP: upper(city + state_code) LOOKUP TAG: county_city ; 3rd tag LOOKUP EXP: county + city If your LOOKUP DBF already has a defined MDX, there is no need to go to all this trouble. GEOCODE will select from the tags/expressions available. Specify the output file: OUTPUT DBF: file_name OUTPUT MDX: file_name ; optional OUTPUT TAG: tag_name ; not supported OUTPUT EXP: dBASE_Expression ; not supported. INPLACE: ; updates INPUT DBF. All output fields must be defined. OVERWRITE OUTPUT: ; overwrite, append, or error msg. APPEND OUTPUT: LAT: lookup_field output_field ; latitude field names in the lookup and output files. LON: lookup_field output_field ; longitude field names in the lookup and output files. RECORD DISTANCE: output_field ; save the great circle distance from CENTER. RECORD MATCH: output_field ; save the match count. 0 or greater. MATCHED ONLY: ; matched 1 or more times UNIQUE: ; matched exactly once. The OUTPUT DBF is a copy of the INPUT DBF but may contain more fields and fewer records depending on matching and selection criteria. The INPLACE option updates the original if the original has enough fields. The fields of unmatched records will not be changed if MATCHED ONLY or UNIQUE is specified. MATCHED ONLY and UNIQUE act on the number of records in the lookup database matching the input record. (See KEY below for what defines a match.) If you specify neither, all records from the input file, matched or not, will be transferred. You can specify that the number of matches be recorded in the output database with the RECORD MATCH statement. The existence of the output database will generate an error message and halt further processing unless you indicate your desire to either OVERWRITE or APPEND to the output database. The LAT and LON statements map the fields containing the latitude and longitude from the lookup database to the output database, the ultimate purpose of geocoding being to transfer this data to matching records. The RECORD DISTANCE statement saves the great circle distance from each geocoded record to the location specified in the CENTER statement (See below). Specify the selection options: KEY: lookup_field input_field [length] ; matches key fields in the lookup and input files. Multiple statements are permitted. FIRST MATCH: ; stop lookup for this input record after the first match. MATCH ONLY value IN FIELD input_field [length] ; match a constant value. SKIP value IN FIELD input_field [length] ; skip a constant value. CENTER: lat/lon_string ; the location from which you want to measure distances. Expects the standard free-format lat/lon string. MAX RANGE: distance ; records beyond this range don't match. MIN RANGE: distance ; records within this range don't match. UNITS: units ; the units applied to the ranges above. These must be spelled out completely (as opposed to the command line arguments version) and include miles, nmiles, kilometers, km, yards, feet, and ft. Defaults to miles. You must specify at least one KEY statement to correlate fields in the lookup and the input files. The optional length argument limits the test for a match to the first n characters of the fields. Use this, for example, when matching a mailing list containing 9 character zipcodes to a lookup database of 5 character zips by setting length to 5. You may have multiple KEY statements all of which must be satisfied for a record to be matched. The first statement, however, is the only one for which an indexed lookup is performed in the lookup database. If FIRST MATCH is not used, subsequent records are read from the lookup database until the first KEY no longer matches. Closely related to the KEY statement which compares fields in the input and lookup databases are the MATCH ONLY and the SKIP statements. These statements select or reject records based on matching a constant value against a field in the input database. You may have only one of each of these statements. An example would be to MATCH ONLY on zipcodes having the first three digits equal to "153" or all records whose state is "PA". The CENTER statement establishes a single location from which the great circle distances to each matched record can be calculated. Use the MAX/MIN RANGE statements to further exclude otherwise-qualifying records and optionally record those distances with the RECORD DISTANCE statement discussed above. The UNITS statement indicates the units of the values in the MAX/MIN RANGE statements. If absent, the default is statute miles. Example Output: The following example is created by copying the lookup database ZIPPHONE.DBF from the MAPIT delivery CD-ROM and found in directory \MAPIT20\DBQS. When you geocode XLIST.DBF against it using the DEMO.DEF definition file (both found in \MAPIT20\EXAMPLES\GEOCODE), GEOCODE will create the index file ZIPPHONE.MDX at the time of the first execution and will produce the following output if executed as follows: C:> geocode /def=demo 64 records geocoded, 68 transferred out of 68. min distance = 9.63 miles avg distance = 435.32 miles max distance = 2199.89 miles from location lat = 40.5833333, lon =-79.5833333 The output will be saved in the new file TEMP.DBF. In this example all records, both matched and unmatched, are transferred. You can transfer only the matched records to another database by overriding the definition file specifications from the command line. C:> geocode /def=demo xlist another /matched This time the output will read: 64 records geocoded, 64 transferred out of 68. and the geocoded records will be stored in the file ANOTHER.DBF. Make changes to the definition file and explore different option combinations. Some combinations may generate error messages which should be self-explanatory. Example Definition File: ; demo.def - Demonstration Geocode definition ; ; lookup input [length] KEY: zip ZIP 5 key: state_code state 1 ; avoid non-US ; addresses record match: geomatched ; record match count in this ; field ;unique: ; = 1 ;matched only: ; > 0 ; 0 or greater if not ; specified overwrite output: ; Gives error msg if one of ;append output: ; these is NOT defined and ; output file exists. LOOKUP DBF: ZIPPHONE lookup mdx: zipphone ; Defaults to dbf name. lookup tag: def_tag ; Defaults to def_tag. lookup exp: upper(zip) ; Needed if no mdx exists for ; lookup dbf. ;lookup tag: 2nd_tag ;lookup exp: upper(city + state_code) ;lookup tag: third ;lookup exp: county + city INPUT DBF: XLIST ; File to be geocoded. ;input mdx: xlist OUTPUT DBF: TEMP ; Inplace: record distance: dist center: 40:35N 79:35w ;Max Range: 1000 ;Min Range: 100 UNITS: miles first match: ; match only PA in field STATE ;skip 15066 in field Zip 2 Advanced Considerations: The database ZIPPHONE.DBF we used in the preceding example may be good for casual geocoding but, as it stands, lacks the control and efficiency those who would do more might desire. It holds a combination of zipcode and telephone exchange information, over 105,000 records, many of which are duplicated from one point of view or the other. To make it truly useful and efficient for your operation, you will want to import ZIPPHONE into a database manager such as Microsoft's ACCESS, delete the unneeded fields, remove duplicate and blank key records, and save the database as a dBASE IV image under a different name. If, for example, you are going to be working with 3 digit zipcode centroids, you could generate those centroids by removing the telephone data completely and reducing the width of the ZIP field to 3 digits. Remove the duplicate records so that each record is unique. Under any three digit zipcode there will be a number of different records. Within ACCESS, you could calculate each 3 digit combination's average lat/lon by database programming or you could export the database to serve as an initial lookup database and, still within ACCESS, create a smaller database with unique three digit zipcodes and null lat/lon fields. Export this second database as your input database and use GEOCODE to find the average location of each record by not using the /FIRST option in the geocoding process. Your new output database will represent the true centroid of 3-digit zipcodes and could be used as your new lookup table when geocoding future work. If you are geocoding a large amount of data, a condensed table holding a single record for each matching key is more efficient than averaging over multiple lookup records on the fly for each input record. In a non-condensed table, the /FIRST option will give misleading results unless all equal-key lat/lon data are duplicates. GEOTOENT This MAPIT utility converts geocoded dBASE IV files to MAPIT entity files. MAPIT entity files are standard dBASE IV files containing certain field names required by MAPIT to display the entities properly. MAPIT entities stored in dBASE files are point entities: they exist at single points and have no inherent dimensions or extents. Lines, on the other hand, stored in .mp3 files, have length and consist of many points. The point entities are figures, stroked text, hidden text, cities, and pcx maps. The GEOTOENT Command Line: Usage: GEOTOENT [input_file] [output_file] [/options...] where input_file - an optional dBASE IV file holding the records to be converted. Assumes a .DBF extension. output_file - an optional dBASE IV database name in which the MAPIT entity data will be stored Assumes a .DBF extension. options: /definition= - a .DEF file holding definitions which may augment or replace those given here as command line arguments. Command line arguments take precedence over statements in the definition file. /append - add newly converted data to the end of the output_file. /overwrite - delete any data in an existing output_file before adding the newly converted data. By default, an error message is issued if the output_file already exists and neither the /append nor the /overwrite option is given. /type= - create this type of MAPIT entity. Use figure, stroked_text, hidden_text, city, or pcx_map. /help - display a list of legal definition file statements. /version - display program's version. /? - display this output. Definition File: GEOTOENT's command line arguments are so numerous and complex that you can place some or all of them within a definition file having the extension .DEF. This file is free format on a line-by-line basis and uses the `;' character as a comment. Everything to the right of the comment character is ignored. The order of statements is not important. Certain combinations are illegal. Some of the following commands can also be entered as command line arguments. For instance, APPEND OUTPUT: corresponds to /append. Selections made at the command line override those made in a definition file allowing you to have a general definition which you can override easily at program invocation. Reference your definition file from the command line with the /definition option as in C:\> geotoent /definition=my_def Specify the input file: INPUT DBF: file_name INPUT DBF is the database you want to convert. In general, it makes no difference if the input file has an index (.MDX file). The input file must be a geocoded file, i.e. it must contain fields containing latitude and longitude data. Specify the output file: OUTPUT DBF: file_name OVERWRITE OUTPUT: ; overwrite, append, or error msg. APPEND OUTPUT: ENTITY TYPE: type ; create the output dbf in the specified format choosing from figure, stroked_text, hidden_text, city, or pcx_map. Defaults to figure if not specified. The OUTPUT DBF is a copy of the INPUT DBF augmented to contain those fields necessary to define the selected ENTITY TYPE. The existence of the output database will generate an error message and halt further processing unless you indicate your desire to either OVERWRITE or to APPEND to the output database. Modify fields: EXCLUDE field ; Don't transfer this field. RENAME field1 TO field2 ; Change the field's name. field = fields strings. ; Load an output field with data from multiple input fields and strings. Input field:n limits assignment to the first n characters. LOAD field WITH constant ; Load a field with a constant. LOAD field1 WITH constant IF field2 OP constant ; Load a field with a constant if another field matches certain criteria. LOAD field1 WITH constant IF field2 OP constant WIDTH number ; Load a field with a constant if the first n characters of field2 matches certain criteria. LOAD field1 WITH constant IF field2 OP constant1 AND OP constant2 ; Add a second operator and constant. LOAD field1 WITH constant IF field2 OP const1 AND OP const2 WIDTH number ; Two operators with constants and a WIDTH applied to field2. EXCLUDE excludes input fields from being replicated in the output database. RENAME changes the name of an input field in the output database. The assignment character = specifies that the fields and strings on the right should be concatenated and saved in the field name on the left. Strings are characters between quotation marks and may include blanks. Specify a newline character with \n which is converted to the carriage return-line feed sequence for proper display in MAPIT and in dBASE programs. The contents of fields are transferred by naming the field. Trailing blanks are eliminated. You can truncate a field by appending the : character followed by a maximum width. For example: hiddentext = "Office location:\n" city ", " State " " ZIP:5 LOAD loads a field with constant text. The text may not have imbedded blanks. Copying the data can be conditional upon the value of a second field's meeting certain criteria specified by one of the following operators: =, <, <=, >, >=, <>. For example: LOAD labelcolor WITH 4 IF zip >= 15000 AND < 16000 WIDTH 5 Comparisons of numeric data are done by first converting the fields to floating point representation. Character fields are compared lexically. The preceding example is somewhat confusing because it is a lexical (character-by-character) comparison of what might appear to be numeric data but isn't. GEOTOENT issues a warning message when numeric fields are truncated by the WIDTH operator. You may not get what you expect depending upon how the numeric data is internally held in the field. Example Output: GEOTOENT will product the following output when run against the TEMP.DBF data file and TEST4.DEF definition file found on the MAPIT CD-ROM under the \MAPIT20\EXAMPLES\GEOTOENT directory C:> geotoent /def=test4 Creating Figures Output. Excluding field GEOMATCHED Renaming field DIST to DISTANCE Creating database index "OUT" Transfering data... Re-indexing output database. 68 records transferred. This HP-GL/2 plot was created by running MYMAP.BAT (See MAPIT BATCH FILES) from a directory on the C: drive with local scantable C:SCANTABL altered to include an Active record referencing figure entity (E_TYPE "F") database C:OUT.DBF. Note that the geocoded circles are proportional in size to their distance from Pittsburgh and are colored in the MAPIT original based on distance. The figure labels contain text from the distance field. Example Definition File: ; test4.def - Example GEOTOENT definition file. INPUT DBF: temp OUTPUT DBF: out OVERWRITE OUTPUT: ENTITY TYPE: figure EXCLUDE geomatched RENAME dist to distance label_text = dist LOAD fig_scale WITH 1 IF dist <= 10 LOAD fig_scale WITH 2 IF dist > 10 AND >= 50 LOAD fig_scale WITH 3 IF dist > 50 AND >= 100 LOAD fig_scale WITH 4 IF dist > 100 AND >= 200 LOAD fig_scale WITH 5 IF dist > 200 AND >= 300 LOAD fig_scale WITH 6 IF dist > 300 AND >= 500 LOAD fig_scale WITH 7 IF dist > 500 AND >= 800 LOAD fig_scale WITH 8 IF dist > 800 AND >= 1200 LOAD fig_scale WITH 9 IF dist > 1200 AND >= 2000 LOAD fig_scale WITH 10 IF dist > 2000 LOAD labelcolor WITH 3 IF dist > 200 LOAD labelcolor WITH 5 IF dist > 500 LOAD labelcolor WITH 4 IF dist > 2000 ;LOAD fig_name WITH CIRCLE IF zip = 15 WIDTH 2 LOAD fig_name WITH CIRCLE HIDDENTEXT = CITY "\n"STATE ", " ZIP:5 Advanced Considerations: The primary purpose of GEOTOENT is to add and initialize fields from an existing dBASE file and produce a new dbf in one of MAPIT's entity formats. When you reference this entity dbf by adding it to the scan table dbf (see FILES/Add Scan Table Record or FILES/Edit DBF), MAPIT will display your data the next time it displays data (scans the databases) via the ZOOM/Redisplay or ZOOM/Overwrite command. You could, by hand with a database manager such as ACCESS, do the very things this program does. The LOAD, RENAME, EXCLUDE, and assign functions could all be accomplished in your database manager. However the advantages of GEOTOENT are operational ease and efficiency. If you have complicated functions to perform, you may have to fall back on ACCESS or its equivalent. But GEOTOENT will place you far along the path toward accomplishing your goal. You may have to experiment to work out the details of complicated queries. GEOTOENT issues warning and error messages at run time if you make mistakes and may refuse to transfer data. A few general rules will help. Field names referenced as the source of data refer to fields in the input file. Although a field may be EXCLUDED (not transferred) or RENAMED, its data is available for use in LOAD or assignment statements at run time. Destination fields, however, must exist in the output dbf. You can truncate data in a field by assigning it to itself with a width parameter. The data is truncated although the field is not shortened. zip = zip:5 MAPIT entities require the existence of the fields LATITUDE and LONGITUDE. If your source dbf contained the data stored in the fields LAT and LON, you would fulfill MAPIT's requirements by renaming the fields. RENAME lat TO latitude RENAME lon TO longitude GEOTOMP1 This MAPIT utility converts geocoded dBASE IV files to MAPIT .mp1 files, ASCII files containing multiple lines of latitude/longitude pairs. The MAPIT utility MP1TOMP3, in turn, transforms these latitude/longitude pairs into MAPIT .mp3 line entities. Depending upon your request, the lines can describe circles, squares, and rectangles around points in your original dBASE file, connect points with straight lines and great circle arcs, and connect other points to the original points by straight lines and great circles. The GEOTOMP1 Command Line: Usage: GEOTOMP1 [input_file] [output_file] [/options...] where input_file - an optional dBASE IV file holding the records to be converted. Assumes a .DBF extension. output_file - an optional file name in which MAPIT line data will be stored as ASCII lat/lon pairs. Assumes a .MP1 extension. options: /definition= - a .DEF file holding definitions which may augment those given here as command line arguments. Command line arguments take precedence over statements in the definition file. /append - add newly converted data to the end of the output_file. /overwrite - delete any data in an existing output_file before adding the newly converted data. By default, an error message is issued if the output_file already exists and neither the /append nor the /overwrite option is given. / location= - the external location from which to draw straight lines or great circles to individual records. Expects the standard free-format lat/lon string. No space allowed between latitude and longitude unless the string is delimited by quotation marks. e.g. /center=40:30.84N79:36.94W /help - display a list of legal definition file statements. /version - display program's version. /? - display this output. Definition File: GEOTOMP1's command line arguments are so numerous and complex that you can place some or all of them within a definition file having the extension .DEF. This file is free format on a line-by-line basis and uses the `;' character as a comment. Everything to the right of the comment character is ignored. The order of statements is not important. Certain combinations are illegal. Some of the following commands can also be entered as command line arguments. For instance, APPEND OUTPUT corresponds to /append. Selections made at the command line override those made in a definition file allowing you to have a general definition which you can override easily at program invocation. Reference your definition file from the command line with the /definition option as in C:\> GEOTOMP1 /definition=my_def Specify the input file: INPUT DBF: file_name INPUT DBF is the database from which you want to generate lines. In general, it makes no difference if the input file has an index (.MDX file). The input file must be a geocoded file, i.e. it must contain fields containing latitude and longitude data. Specify the output file: OUTPUT FILE: file_name OVERWRITE OUTPUT ; overwrite, append, or error msg. APPEND OUTPUT The OUTPUT FILE contains a series of line definitions generated from specifications in the DEFINITION FILE. If an OUTPUT FILE of the same name already exists, you can choose to OVERWRITE OUTPUT, which deletes it, APPEND OUTPUT, which adds the new data to its end, or have processing cease with an error message, the default action, which protects the original file contents. Specify fields and locations: LATITUDE: field_name ; Name of the field holding the record's latitude. Defaults to "LATITUDE". LONGITUDE: field_name ; Name of the field holding the record's longitude. Defaults to "LONGITUDE". INTERNAL LATITUDE: field_name ; Field containing the latitude of an internal location. INTERNAL LONGITUDE: field_name ; Field containing the longitude of an internal location. EXTERNAL LOCATION: lat/lon_string ; An external loc. as a standard free-format lat/lon string. May contain a blank between lat lon. e.g. 40:30.84N 79:36.94W LATITUDE: and LONGITUDE: specify the field names holding the geocoded latitude and longitude data for each record. Their default values are "LATITUDE" and "LONGITUDE" respectively. INTERNAL LATITUDE: and INTERNAL LONGITUDE: specify the field names of internal locations for each record. The internal location can be used for drawing a line to the record's geocoded location. Similarly the EXTERNAL LOCATION: specifies a single location from which lines can be drawn to each record's geocoded location. You can specify or override an EXTERNAL LOCATION: statement with the /location= command line argument. Specify marker instructions: COMMENT: fields_names and quoted_strings ; Precede a record in the OUTPUT FILE with a comment consisting of quoted strings and data from the named fields. CIRCLE radius_value [if_clause] ; Output a CIRCLE of a given radius if certain optional conditions are met. SQUARE width_value [if_clause] ; Output a SQUARE of a given width if certain optional conditions are met. RECTANGLE WIDTH width_ value [if_clause] ; Output a RECTANGLE of a given width if certain optional conditions are met. RECTANGLE HEIGHT height_ value [if_clause] ; Output a SQUARE of a given height if certain optional conditions are met. PLUS width_ value [if_clause] ; Output a PLUS `+' character of a given width if certain optional conditions are met. X width_ value [if_clause] ; Output an `X' marker of a given width if certain optional conditions are met COMMENT: specifies that the following fields and strings be concatenated and written as a comment to the OUTPUT FILE. Comments in .mp1 files are any text following the `;' character through the end of the line. Strings are characters between quotation marks and may include blanks and \n newline characters which continue the comment to the next line.. You can truncate a field by appending the `:' character followed by a maximum width. For example: COMMENT: CITY ", " STATE " " ZIP_CODE:5 ",\nUnited States" The CIRCLE and other marker statements cause those markers to be written to the OUTPUT FILE as sequences of straight line segments described by latitude/longitude pairs. The size of those markers is defined by a value followed by an optional unit. Note that the circle is defined in terms of its RADIUS while the other markers, by their WIDTH or HEIGHT dimensions. Both a RECTANGLE WIDTH and a RECTANGLE HEIGHT statements are needed to define each RECTANGLE. Specify line instructions: STRAIGHT LINE INTERNAL [if_clause] ; Draw a straight line between a location specified within a record and the record's geocoded location. STRAIGHT LINE EXTERNAL [if_clause] ; Draw straight lines between a single location specified outside a record and all records' geocoded locations. STRAIGHT LINE CONNECTOR [if_clause] ; Draw a straight line between each record's geocoded location and that of the following record. GREAT CIRCLE INTERNAL [if_clause] ; Draw a great circle between a location specified within a record and the record's geocoded location. GREAT CIRCLE EXTERNAL [if_clause] ; Draw great circles between a single location specified outside a record and all records' geocoded locations. GREAT CIRCLE CONNECTOR [if_clause] ; Draw a great circle between each record's geocoded location and that of the following record. These optionally conditional expressions draw either straight lines or great circles connecting the geocoded locations of records, connecting an internal location within each record to its geocoded location, or connecting a single externally-specified location to the geocoded location of each record. Subdefinitions: value numeric_field_name, number unit miles, nmiles, kilometers, km, meters, yards, feet, ft if_clause IF field_name OP constant [AND OP constant] [WIDTH number] OP =, <, <=, >, >=, <> Outputting data can be dependent on an optional if_clause and the value in a field's meeting certain criteria as specified above. For example: CIRCLE 5 miles IF zip >= 15000 AND < 16000 WIDTH 5 Comparisons of numeric data are done by first converting the fields to floating point representation. Character fields are compared lexically. The preceding example is somewhat confusing because it is a lexical (character-by-character) comparison of what might appear to be numeric data but isn't. GEOTOMP1 issues a warning message when numeric fields are truncated by the WIDTH operator. You may not get what you expect depending upon how the numeric data is internally held in the field. Example Output: GEOTOMP1 will product the following output when run against the CAPITALS.DBF data file and TEST1.DEF definition file found on the MAPIT CD-ROM under the \MAPIT20\EXAMPLES\GEOTOMP1 directory. Output to the screen: C:> geotomp1 /def=test1 Overwriting Transfering data... 412 records processed out of 1071. C:> mp1tomp3 out /color=4 /over C:> mymap out Test1 Output: Great Circles from Washington DC to National Capitals Straight Lines from National Capitals to State Capitals Squares and Circles around National and State Capitals Test1 Output: Detail of Brazil Test2 Output of Cards: Straight Line Connectors between Records 25 mile Squares Test3 Output of Cards: Great Circles from External Point to Nodes 25 mile Squares Test1 output to the file OUT.MP1: ; Washington, District of Columbia, United States of America 39.6191469 -76.0965859 39.6191469 -77.9767541 38.1708531 -77.9577757 38.1708531 -76.1155643 39.6191469 -76.0965859 38.8950000 -77.0366700 38.8950000 -77.0366700 ; Taipei, , Taiwan 25.7680369 122.3013261 25.7680369 120.6931139 24.3197431 120.7025557 24.3197431 122.2918843 25.7680369 122.3013261 25.4059635 121.4972200 . 25.4059635 121.4972200 38.8950000 -77.0366700 . 25.0438900 121.4972200 25.0438900 121.4972200 25.0438900 121.4972200 ; Seoul, Soul-t'ukpyolsi, Korea, Republic of 38.2872069 127.8995204 38.2872069 126.0543596 36.8389131 126.0721232 36.8389131 127.8817568 38.2872069 127.8995204 etc. Example Definition File: ; test1.def - examples of geotomp1 options. ; Draw Great Circles from Washington DC to national capitals. ; Draw straight lines from national capitals to state capitals. ; Draw 100 mile width squares around national capitals. ; Draw 25 mile radius circles around state capitals. input dbf: capitals output file: out overwrite output Square 100 IF natnl_cap = T CIRCLE 25 miles IF state_cap = t GREAT CIRCLE EXTERNAL IF natnl_cap = t STRAIGHT LINE INTERNAL IF state_cap = t EXTERNAL LOCATION: 38.895 -77.03667 ; Loc of Washington, DC INTERNAL LATITUDE: lat ; Natl capital loc assigned beforehand INTERNAL LONGITUDE: lon ; in database. COMMENT: city_name ", "PROVINCE ", " country Advanced Considerations: GEOTOMP1 differs from GEOTOENT in that the former converts discrete points recorded in dBASE files to series of line data depicting markers around said points or the connection of these points with other locations. GEOTOENT converts dBASE data to MAPIT dbf entities. MAPIT dbf entities can, in general, be either map or screen relative. .MP1 line entities are of fixed size and are, therefore, always map relative. You must specify before hand the radius of a circle in miles or kilometers, and it will always be such. GEOTOMP1 allows the user to attach multiple lines and markers to each point in a single pass. You could draw a circle and square around each point and draw a straight lines and great circles from internal or external points while connecting consecutive data points with straight lines and great circles. There is, however, beauty in simplicity. GPS Allison Software's MAPIT GPS Utilities Package is a set of IBM PC- compatible programs designed to capture NMEA 0183 data from a Global Positioning System receiver transforming it into mapping coordinate data and saving it to computer disk for display and use by MAPIT. The Global Positioning System (GPS) consists of 24 satellites maintained by the US Department of Defense. Signals transmitted from these satellites are encoded with precise location and timing information which enable users with GPS receivers to determine their location anywhere in the world with 100 meter accuracy. GPS Overview: MAPIT GPS supports the capture of real-time positioning data from a GPS receiver's NMEA output cable through a computer's serial COM port. GPS converts the data from its original NMEA 0183 sentence format to a series of latitude/longitude/time fixes which the user can view in real-time on the screen, can be sent to an intermediate dB file for concurrent access by MAPIT, and saved in a log file. GPS is a Windows program and must be installed under Microsoft Windows 3.1 or Windows 95 on an IBM PC-compatible computer. It expects GPS output in the form of NMEA 0183 Version 2 sentences supplied at 4800 baud to serial COM port 1 - 4. (See Hardware Connections for port pin configuration.) GPS notifies the user when the data signal is acquired, dropped, or missing; optionally logs incoming data to the display or to an ASCII log file; and parses NMEA sentences collecting the results as fixes for display, logging, and updating of the first record of a dB IV-compliant data base for real-time access by MAPIT. Additionally, supported and unsupported NMEA sentences can be displayed and logged and the computer's system clock reset to agree with the time supplied by the GPS signal. GPS updates the file system's FAT (File Access Table) about once a minute to reduce data loss due to computer battery failure or system crash. GPS continues to operate when minimized to an icon. GPS Installation: Being a Windows program, you must install GPS from within Windows so that its icon appears in the program group of your choice. From within Windows 3.1 first select the program group you want the GPS icon to reside in by clicking anywhere in it. When selected, the program group's top banner is darkened. From the Program Manager, click on File and then select New from the menu. The New Program Object window appears. Select Program Item and OK. The Program Item Properties dialog box appears. Enter "MAPIT GPS" as the Description, "gps" as the Command Line, and the path where GPS.EXE resides as the Working Directory. (Note CB5.DLL must also reside in the working directory with GPS.EXE or in the \WINDOWS\SYSTEM subdirectory.) Click OK and GPS's icon will be installed in your chosen program group. Execute GPS by double clicking this icon. GPS's Menus: File Accesses files containing settings. DBF Accesses database files. Log Accesses log files. Transfers Controls GPS input and logs output information. Settings Controls data port, fix spacing, and smoothing. Help Displays About screen. File: The files accessed by this menu record or restore the GPS DBF, Log, Transfers, and Settings options. Opening an existing file recreates the state GPS was in when the File was created. Files have the default extension .GPS. New - Resets the program settings state back to conditions existing at program start. Open - Opens an existing program settings state file and loads the settings into the program, closes any old DBF or Log files, and opens requested ones. Save - Saves the program settings state in an existing file. Save As - Saves the program settings state in a new file. Exit - Terminates the GPS program and closes all files. DBF: The first record of the database file opened by this menu is kept up-to- date with the current fix generated by GPS when the system is active. Files have the default extension .DBF. The name of an active dB file is listed in the menu bar. Open - Opens an existing DBF for continual update with the current fix. Save As - Creates a new DBF and opens it for continual update with the current fix. Close - Closes the currently open DBF. Log: The files accessed by this menu hold information displayed on the main window during program execution. Files have the default extension .LOG. The name of an active Log file is listed in the menu bar. Open - Opens an existing Log for output of newly displayed information. The information is appended at the file's end. Save As - Creates a new Log and opens it for output of newly displayed information. If you force output to an existing file, the file is first truncated Close - Closes the currently open Log. Transfers: Controls input from the GPS unit, the display of information on the screen (and to the Log file when one is open), and the synchronization of the computer's clock with the time encoded in the received signal. Receive GPS - Accepts GPS input data from the selected serial com port when checked. Logs an error message to the display (and optional Log file) if data stops for a ten second period. (Expected nominal data rate is one fix consisting of one or more NMEA sentences no more than once a second.) GPS input - Outputs raw data to the display (and optional Log file) when checked. The data is compatible with .NME format and can therefore be used as input to NMETOMP1. Position output - Outputs processed fix data to the display (and optional Log file) when checked. A fix is output after the first sentence of the next fix is received. Fix output is in a format compatable with .MP1 format and therefore can be used as input to MP1TOMP3. Supported - Outputs supported (recognized and therefore translated) raw NMEA 0183 data sentences to the display (and optional Log file) when checked. Unsupported - Outputs unsupported (unrecognized and therefore untranslated) raw NMEA 0183 data sentences to the display (and optional Log file) when checked. Errors - Outputs the raw data of any recognized sentences which are obviously in error to the display (and optional Log file) when checked. This condition most commonly happens at program startup when only the last part of the first sentence is received. Reset Clock - When checked, updates the computer's system clock to reflect the minutes and seconds as they're delivered real-time from the GPS hardware. The hour is not changed in order to protect the local time offset from the Universal Time delivered by the GPS except when the corrected minutes advance or retreat over the hour mark. Even that exception is excepted at the start of a new day. (Time corrections are not applied near midnight to avoid the necessity of changing the computer's calendar day and possibly year.) Time corrections are applied only when the computer's minutes and seconds are within 10 minutes of the GPS's UT. A displayed message indicates the difference between these two times and whether the computer's clock has been reset. The user must reset the computer manually with the TIME command to the approximate time if the time difference is too great for automatic update. Apparent random delays on some GPS units between receiving a signal, processing it, and downloading it through the NMEA port give rise to reset times which can fluctuate from reset to reset by as much as several seconds making a precisely set system clock impossible to achieve. When Reset Clock is checked, the reset is applied once but only after a new fix appears within two seconds of the last one, an attempt to insure that only current readings are used. By clicking this option off and on, you can force another reset of the time. Subsequent resets will display a time difference demonstrating the limits impossed by the fluctuations of your system's aforementioned delay. Settings: Controls COM port, pruning, and averaging options. COM Port - Selects one of the computer's serial COM ports at which to expect data. A newly-chosen port doesn't become effective until the next time Receive GPS is set under Transfers. (i.e. Already in-progress communications are not terminated by choosing a new port.) A message indicates if the chosen port is already allocated or isn't supported by the underlying hardware. Data is fully buffered and should not suffer overrun under normal program execution. Prune - Indicates whether duplicate fixes are output and exactly what a duplicate fix is. By default all fixes differing in time are output independent of their spatial displacements from each other. By checking the Enable Pruning box, you invoke GPS's simple pruning algorithm which enforces a minimum separation between adjacent fixes for them to be considered non-duplicates. The Minimum Point Spacing controls the value of this minimum separation. The default 0 value implies no effective pruning. By increasing the minimum separation to a positive value, you change the definition of what a duplicate point is and therefore how close together fixes can lie and yet be displayed. There are a variety of units you can choose ranging from feet to meters to nautical miles. You must choose OK before any changes become permanent and therefore effective. To illustrate fix pruning, set your GPS receiver in a stationary location and Enable Pruning with a 0 Minimum Point Spacing. Because of the Selective Availability randomization applied by Department of Defense to the GPS signal, a number of slightly different fixes will be displayed. (Turn on Position output to monitor the output.) Selecting a Minimum Point Spacing of 35 feet will drastically reduce the number of fixes generated in any given time period. The DOD claims that GPS fixes will fall within 100 meters of the actual location 95% of the time. Average - Averages the last GPS location with the current GPS location to produce the current fix when this option is checked. This produces a somewhat smoother track when not pruning but when examining the track near the limits of its accuracy. Help: Displays About Gps. About Gps... - Displays program version number, copyright, and author information. Sample Output: This sample session includes Log/Save as opening a log file Transfers/GPS input enables display of raw GPS data Transfers/Position output enables display of calculated positions Transfers/Receive GPS turns on input data from selected COM port At this point NMEA sentences from the GPS are displayed on the screen as they are received. The first in a series of five output by this unit (a Magellan Meridian) is $GPGLL. Note that after the next fix is begun (marked by the second $GPGLL), the first fix is output. After several fixes, the session was terminated. Transfers/Receive GPS toggles off input Log/Close closes the log file A more typical example might include only logging locations to a file. In this case the signal was weak and transmission stopped for a minute or two before resuming. (This data was taken at a stationary location but with a loose antenna connection resulting in widely-fluctuating fixes and high indicated speeds.) See \MAPIT20\EXAMPLES\GPS on your CD-ROM for other data examples and NMETOMP1 below for examples of data reduction. dB File Format: The dB file created or opened by GPS must contain the following numeric fields. Lengths are those assigned during a GPS create. Name Type Example Meaning NAME C 20 "GPS" Name record 1 "GPS". LATITUDE N 10.6 -90.000000 latitude, decimal degrees, neg. = south LONGITUDE N 11.6 -180.000000 longitude, decimal degrees, neg. = west ALTITUDE N 6.0 999999 altitude in meters TIME N 11 Any positive long integer. Date/Time of fix in seconds since Jan 1, 1970. (UTC) SPEED N 5.1 999.0 kilometers/hour HEADING N 5.1 359.0 degrees true from north COLOR N 6.0 -1 -1 = none specified, pos = color number ACTIVE L 1 "T" MAPIT ignores if not active. Error: GPS generates errors of two types: those arising from incorrect or unexpected data in otherwise proper NMEA 0183 sentences and those caused by data overruns in your PC's com port. The latter, if they happen at all, will be flagged by the message Read error n on Com Port m. where n indicates an error number and m a port number (1 - 4) 1 Receiving queue overflow. No room in the input queue. 2 A character was not read from the hardware before the next character arrived and was, therefore, lost. At this writing, only error n = 2 has been noted under Windows 3.1, and then only on slower machines. Reducing the size of the GPS window or reducing it to an icon will reduce the amount of material to be redisplayed for each new position and will positively impact portables with slow screen I/O. Precision versus Accuracy: The old conundrum of precision versus accuracy raises its confusing head again in the case of MAPIT-displayed GPS data. MAPIT is able to store points within approximately 100 feet of a location. In other words, a point whose location should be at x may be as much as 100 feet from x in any direction. GPS has the inherent capability of locating points within approximately 50 feet of their actual position. In deference to national security, however, the Department of Defense applies a randomizing signal called Selective Availability (SA) to the GPS system which decreases its accuracy to within plus or minus 300 feet 95% of the time. On the other hand, GPS signals, because of their precision, appear to be very accurate. The Meridian's GPGLL latitude/longitude output with 0.001 minute precision incorrectly implies fixes accurate to six feet! Plotting this data on the MAPIT world of 100 foot squares is like trying to view super VGA data on an old CGA display. But one is quickly reminded that the data's apparent 6 foot accuracy is meaningless when the original reading is superimposed on a second taken some time later. The two readings from the same location may be as much as 600 feet apart! It is important to view all GPS data with a 300 foot halo of uncertainty around it. There are, however, methods of obtaining more accurate GPS fixes. In what might appear to be an internal turf war, the US Coast Guard is establishing a series of transmitter sites along the coast broadcasting correction signals which, when applied to differential GPS receivers, more than compensate for the DOD induced SA, a great boon to boat owners! Similarly, surveying GPS units use locally generated correction signals transmitted from a known point to achieve truly remarkable accuracy within a limited area. Hardware Connections: Serial input to your computer is commonly through a 9 pin male connector with the following pin connections: pin I/O 1 I DCD Data Carrier Detect 2 I SIN Serial Input 3 O SOUT Serial Output 4 O DTR Data Terminal Ready 5 N/A GND Signal Ground 6 I DSR Data Set Ready 7 O RTS Request to Send 8 I CTS Clear to Send 9 I RI Ring Indicator NMEA + 2 NMEA - 5 7 8 RTS - CTS (optional) 6 4 DSR - DTR (optional) If your GPS's NMEA 0183 cable does not come supplied with a connector, you can wire your own 9 pin female connector. (CTS and DTR needed to be asserted for your computer to accept data in an earlier non-Windows program. The jumpered pins indicated below aren't needed for the Windows GPS.) Supported NMEA 0183 Version 2.00 Sentences: GPS currently supports the following NMEA sentences: GLL * Geographic Position - Latitude/Longitude latitude, longitude, time GGA * Global Positioning System Fix Data latitude, longitude, time, number of satellites in use, horizontal dilution of precision, antenna altitude VTG Track Made Good and Ground Speed track made good, speed over ground RMA Recommended Minimum Specific Loran-C Data latitude, longitude, track made good, speed over ground RMC * Recommended Minimum Specific GPS/TRANSIT Data latitude, longitude, time, date, track made good, speed over ground *Sufficient by itself to provide a minimum fix of latitude, longitude, and time. Problems and Solutions: I'm not getting any output to GPS.DBF. Is the right Settings/COM Port turned on? Is Transfers/Receive GPS enabled? Have you created (by DBF/Save As) and DBF/Opened GPS.DBF? Is your GPS unit turned on (The NMEA submenu is deeply buried in the Aux Setup of my Meridian.) and plugged in (J) to the right COM port? Is the GPS currently receiving data? On the MAPIT side, is Tools/GPS Markers/Active enabled? Is your Interface GPS GPS.DBF in the same directory as the GPS's? MP1TOMP3 This MAPIT utility converts text files containing strings of latitude/longitude pairs (as might be generated from a CAD system or digitizer) to .MP3 file format. .MP3 files are about 30 percent of the size (in bytes) of their .MP1 counterparts. Usage: MP1TOMP3 data_file [/options] where data_file - name of an .MP1 file to be converted to .MP3 format. An .MP3 file with the same root name is created. options: /id= - Region id stored in the region header; defaults to 0 (range: 0-65,533) /layer= - Layer assignment stored in entity header; defaults to layer 0 (range: 0-65,533) /color= Force the line to color n rather than to the layer color. Defaults to -1 (layer color). /minzoom= - Min zoom factor stored in entity header; defaults to 0 (range: 0-65,533) /maxzoom= - Max zoom factor stored in entity header; defaults to 0 (range: 0-65,533) The .MP1 file format is a simple ASCII listing of latitude/longitude pairs representing strings of connected points. String termination is marked by separator (blank) records. See APPENDIX E - Standard Lat/Lon Notation. ";" is a comment character which instructs MP1TOMP3 to ignore the rest of the line. A comment in the first column of a line means to ignore the line and not treat it as a blank to start a new line segment. An example of the .MP1 data format is found in the ASCII file TRACK.MP1. 48.944667 2.271500 Flying west of Paris by J-F MARTIN 48.945334 2.272000 using a GARMIN GPS 48.946000 2.272500 Course 023.5, speed 92.8 mph 48.946667 2.272833 48.947334 2.273333 48.948000 2.273833 48.948834 2.274167 48.949500 2.274667 48.950167 2.275167 48.950834 2.275500 48.951500 2.276000 *48.952167 2.276500 48.952834 2.276833 48.953500 2.277333 48.980667 2.295167 48.981334 2.295667 48.982000 2.296000 48.982667 2.296500 48.983500 2.297000 NMETOMP1 NMETOMP1 is the part of the MAPIT GPS Utility Package designed to convert and process raw NMEA 0183 Version 2 sentence data logged on disk by the GPS program and save it to an ASCII lat/long .MP1 format file. NMETOMP1 is included because it can do the more computationally- intensive straight line corridor pruning which GPS is not able to do on the fly. Beyond straight format conversion, NMETOMP1 also provides a great deal of error checking, the coalescing of data partially and multiply defined by a set of NMEA sentences generated from a single fix, the dropping of duplicate points, simple data smoothing, and the pruning of unneeded points. The NMETOMP1 Command Line: Usage: nmetomp1 input_file [output_file] [/options] where input_file The required input data file name. The input file must be an ASCII NMEA sentence file whose extension, unless otherwise specified, defaults to ".NME". output_file An optional name for the ASCII .MP1 formatted output file. If no extension is specified, the default extension ".MP1" is used. If no output_file is specified, the input_file name with the extension ".MP1" is used for output. options /average /avg Apply a simple smoothing algorithm to the data. Averaging is accomplished after duplicate points are removed and minimum spacing is determined. /average has no noticeable effect on the display of data by MAPIT unless the /minxx=spacing option is applied with a spacing value greater than the 100 foot resolution of MAPIT's ability to reproduce data. See Precision versus Accuracy below for a related discussion. /decimals=n The required number of places of precision after the decimal point for latitude, longitude, and time input data. Defaults to 2. A value of 0 requires none but allows data after the decimal point. The primary purpose of this option is to allow for the further checking for dropped data to the right of the decimal which are not spelled out in the NMEA specification. Because the exact precision of your data is GPS vendor-dependent, you may want to examine the raw data and adjust this option accordingly. As an example, specifying /decimals=1 will cause the otherwise correctly formatted time field "120156" in vendor X's GLL statement to be logged as an error but is not an overall debilitating error if the time is available from another sentence. Some compromise toward less stringent error checking may be necessary. (This is a fine-tuning option. If it works, don't fool unless the output shows too many bad points.) See /error below. /duplicates Don't drop duplicate points but convert all data. By default, NMETOMP1 doesn't convert duplicate points: points taken within half a time second of the previous point or located within a distance of the last point implied by /decimals above (applied to the location expressed in minutes: e.g. /decimals=2 implies a minimum separation of 0.01 minutes). Duplicate points can be created as the GPS looses signal acquisition, in which case the last fix may be retransmitted a number of times, or when physical movement of the GPS ceases. /error Log parsing error messages in output_file.ERR. Errors are normally due to incomplete sentences at GPS capture program startup. /minfeet=n /minft=n /minmeters=n /minkmeters= n /minmiles=n /minnmiles=n Prune (drop) points to support a precision of n feet, meters, kilometers, miles, or nautical miles. GPS fixes can be downloaded as often as every second or two resulting in a huge number of points which may be too close together to be warranted by a particular application. One of the main strengths of NMETOMP1 is the program's ability to reduce the number of points to meet the user's criteria of data spacing and accuracy. The pruning algorithm consists of two parts: fixes which are within the stated distance n of the last fix are dropped as being obviously unnecessary. Also intermediate points falling within a straight line corridor 2n wide between the last accepted fix (anchor point) and the next necessary one are themselves unnecessary. A dramatic reduction in data is possible by specifying a minimum precision of even 500 feet. (Remember that S/A - see below - reduces the accuracy of any given fix to +/-300 feet with a 95% probability.) /unsupported Log unsupported NMEA sentences in output_file.ERR Unsupported NMEA sentences are those of which NMETOMP1 is not aware. They neither hurt nor are interpreted. (See Supported NMEA 0183 Version 2.00 Sentences: for a list of supported sentences.) /? This option displays a brief explanation of all command line options on the screen. Example Input/Output: Two samples of data input and one of data output are listed below. The data input, although conforming to the NMEA 0183 version 2.00 specification, can vary from GPS to GPS because of the variety of sentences available, their ordering, data precision, and dropped elements. The input listed below is from a Magellan GPS Meridian, a less expensive if not popular hand-held GPS. The Meridian supports three different types of NMEA output chosen from deep within its menuing system (Aux Menu, second page, NMEA): 0183A, 0813B, and 0813C. The 0813A uses NMEA sentences from a prior standard no longer recommended for use and not supported by NMETOMP1. 0813B's output is shown in Sample Input A, and 0813C's output is shown in Sample Input B. Note that in both cases a single fix gives rise to multiple sentences which may contain redundant data. (See Supported NMEA 0183 Version 2.00 Sentences: below for a list of required and supported sentences.) In the Meridian examples, 0813C (Sample Input B) gives more data unless you require that the date be included. On the other hand, Sample A's data carries mandatory checksums for data accuracy. Sample Input A: $GPRMB,A,0.02,L,0008,0009,4027.05,N,07935.27,W,003.9,162.,00.0,V*21 $GPRMC,200150,A,4030.81,N,07936.83,W,00.0,000.0,150394,08.,W*4C $GPRMB,A,0.01,L,0008,0009,4027.05,N,07935.27,W,003.9,162.,00.0,V*22 $GPRMC,200156,A,4030.80,N,07936.83,W,00.0,000.0,150394,08.,W*4B $GPRMB,A,0.01,L,0008,0009,4027.05,N,07935.27,W,003.9,162.,00.0,V*22 $GPRMC,200157,A,4030.80,N,07936.83,W,00.0,000.0,150394,08.,W*4A Sample Input B: $GPGLL,4030.899,N,07936.455,W,012611.861,A $GPAPB,A,A,0.3,R,N,V,V,162.7,T,009,166.8,T,85.3,T $GPGGA,012611.86,4030.90,N,07936.46,W,1,07,4.1,,,,,, $GPVTG,81.5,T,89.9,M,2.7,N,5.0,K $GPBWC,012611.86,4027.05,N,07935.27,W,166.8,T,175.2,M,4.0,N,009 $GPGLL,4030.910,N,07936.449,W,012615.921,A $GPAPB,A,A,0.3,R,N,V,V,162.7,T,009,166.9,T,160.9,T $GPGGA,012615.92,4030.91,N,07936.45,W,1,07,5.1,,,,,, $GPVTG,6.0,T,14.4,M,8.2,N,15.2,K $GPBWC,012615.92,4027.05,N,07935.27,W,166.9,T,175.3,M,4.0,N,009 $GPGLL,4030.936,N,07936.449,W,012621.369,A $GPAPB,A,A,0.3,R,N,V,V,162.7,T,009,167.0,T,173.6,T $GPGGA,012621.37,4030.94,N,07936.45,W,1,07,3.9,,,,,, $GPVTG,353.4,T,1.8,M,22.7,N,42.1,K $GPBWC,012621.37,4027.05,N,07935.27,W,167.0,T,175.3,M,4.0,N,009 Note: GPAPB Autopilot Sentence "B" - unsupported . GPBWC Bearing & Distance to Waypoint - unsupported. Sample Output: 1 2 3 4 5 6 7 8 9 40.514983 -79.607583 0 012611.861UT 000000 81.5 5.0km/hr 4.1 7 40.515167 -79.607483 0 012615.921UT 000000 6.0 15.2km/hr 5.1 7 40.515600 -79.607483 0 012621.369UT 000000 353.4 42.1km/hr 3.9 7 1 Latitude in decimal degrees. Negative implies south. 2 Longitude in decimal degrees. Negative implies west. 3 Altitude in meters above sea level. 4 Universal Time (GMT) HHMMSS.SSS 5 Date at the Prime Meridian. DDMMYY 6 True course made good. 7 Speed over ground in kilometers per hour. 8 Horizontal dilution of precision. 9 Number of satellites in use (versus in view). 0 - 12. Terms defined: Speed over ground, track made good: GPS terminology, probably rightly, is oriented toward non-land-based conveyances (airplanes and ships). In terms of air and water navigation, ones course (track) and speed can be referenced either to that steered and covered through the air or water or referenced to the "absolute" coordinate system of the ground. Hence the unambiguous terminology speed over ground and track made good. Dilution of precision: This is a number showing the added uncertainty of a fix due to the relative location of the satellites when the fix is made. A simple way to think of the geometry of a fix is to picture two fuzzy lines crossing each other at right angles. If the lines' fuzziness represents the limits of their accuracy, the area of fuzziness at their intersection is the uncertainty of the fix. As the lines move from the optimal right angle intersection to an oblique intersection, the area of imprecision increases. Dilution of precision due to satellite geometry works the same way. Even in the best of circumstances, a minimum value of uncertainty is established by minute variations in the satellites' atomic clocks and variations of the speed of the propagation of the signal through the atmosphere due to changes in barometric pressure, temperature, moisture, and so forth. This inherent imprecision can be amplified by the satellites' relative positions to each other and to the observer. Hence the dilution of precision. Smaller values are better. The format of this output, known as (extended) .MP1 by Allison Software, is not precisely defined. The program MP1TOMP3 converts the first two columns, the latitude and longitude, to .MP3 format and treats all following text as comments. Whether there are adjustments in the following columns as GPS data conversion evolves remains to be seen. The data is defined in terms of the order of white space-separated characters groups and not by absolute column position. Example Data Reduction Session: From the output data left in GPS2.NME by the GPS Windows utility (\MAPIT20\EXAMPLES\GPS on your MAPIT CD), create two .MP3 track files, one of the raw data and the second with an average of points at a minimum spacing of 200 feet. Color the averaged data red, and combine them both in the same file for display and plotting from within MAPIT. C:> nmetomp1 gps2 x 680 fixes output out of 680. 0 errors in 3871 lines. C:> nmetomp1 gps2 x2 /minft=200 /avg 175 fixes output out of 680. 0 errors in 3871 lines. C:> mp1tomp3 x C:> mp1tomp3 x2 /color=4 C:> copy /b x.mp3+x2.mp3 C:> mymap x The pen associated with color 4 was increased to 0.5mm wide in WIDE.PEN (made from STD.PEN) and MYMAP.BAT modified with /pen=wide to create the following plot. GPS's Raw Data vs. 200 Foot Average The block-like character of the original track represents the resolution limits of MAPIT permanent line data. MAPIT`s dynamically displayed moving markers are not subject to this quantum limitation and will display between minimum line spacings. COMBINED.MP3 Plotted at 1:300,000 The preceding plot shows the results of three tracks taken from an automobile on both major roads (shown) and minor roads (not shown). The plot, some 15 miles wide and at approximately 3.3 times the resolution of MAPIT's underlying data, demonstrates the difficulty of creating maps truly accurate in all detail. Parts of this plot make more sense when viewed in color with rivers, county, and populated place boundaries turned on. The preceding more-detailed GPS plot was taken from a portion of the left side of the smallest triangle near the upper right of this plot. SIMULATE This MAPIT utility uses simulation scripting instructions to update MAPIT's moving marker dBASE IV file forcing marker icons to travel across MAPIT's map display in accelerated real time. The simulation scripting instructions are free-format statement describing the motion of one or more objects in terms of location, date, time, speed, and heading which the user enters into a text file. SIMULATE interprets these instructions, generates a time-based simulation stream, and feeds this stream to MAPIT's moving marker dBASE IV GPS interface. To view the simulation, the user must simultaneously run MAPIT within another session of Windows while enabling the TOOLS/GPS Markers/Active menu item to make them visible. See the MAPIT TOOLS/GPS Markers instructions elsewhere in this manual for detailed general instructions and the Advanced Considerations section below for specific instructions. The SIMULATE Command Line: Use: SIMULATE script [output_dbf] [/options...] where script - a text file holding simulation instructions. Assumes a .SIM extension. Command line arguments take precedence over statements in the script file. Output_dbf - an optional dBASE IV GPS Interface database to which the simulation instructions will be written. Defaults to "GPS" and assumes a .DBF extension. options: /rate= - run the simulation at n times simulated time. /delta_time= - update the simulation every n seconds of simulated time. If not specified, the delta time is automatically calculated and adjusted to maintain /rate above. /delay= - delay the start of the simulation n seconds. Use this option to facilitate task switching between the simulation task and MAPIT. Defaults to 5. /startat= - begin the simulation at this date/time offset. /stopat= - end the simulation at this date/time offset. /full_time - override any "start at/stop at" simulation statements in .SIM script and run the simulation its full natural length. /single= - output only the named object /mp1= - output the simulation tracks to an ASCII .MP1 file rather than to the .DBF. When converted to .MP3 format, the tracks are stripped of their time-dependent orientation and may be viewed in detail from within MAPIT. /short - output only lat/lon pairs to an ASCII .MP1 file without date/time information to produce a smaller file. /overwrite - delete any data in an existing .mp1 before adding new simulation tracks. By default, an error message is issued if the .mp1 file already exists and neither the /append nor the /overwrite option is specified. /append - add newly simulated track data to the end of the .mp1 file. /dump - create a debug dump of the contents of each leg of each object /help - display a list of legal simulation file statements. /version - display program's version. /? - display this output. Script File: The required script file is a text file with the nominal file name extension .SIM. Script files hold instructions defining objects and the legs of a journey each object takes. This file is free format on a line-by- line basis and uses the `;' character as a comment. Everything to the right of the comment character is ignored. Within limitations, the order of statements is not important. Object legs may be defined out of sequence within the constraints of the syntax. (See USAIR.SIM.) The script file can also contain some statements specifying information which otherwise may be entered as command line arguments. For instance, DELTA TIME corresponds to /delta_time=. Selections made at the command line override those made in a script file allowing you to have a general definition which you can override easily at program invocation. Reference your script file from the command line as the first command line argument as in C:\> simulate goose where goose.sim is a script file. General statements: OUTPUT DBF: file_name ; Output to MAPIT's Moving Marker GPS .DBF. Defaults to "GPS". SIMULATION RATE number ; Speed up simulation by factor n. DELTA TIME seconds ; Set the time between simulation calculations in seconds. DELAY seconds ; The delay before starting the simulation. Defaults to 5 seconds. START AT Date/Time ; Begin the simulation at Date/Time. STOP AT Date/Time ; End the simulation at Date/Time. GREAT CIRCLE or GC ; Plot each leg of the course as a great circle. (Default.) STRAIGHT LINE or RHUMB ; Plot each leg of the course at a constant heading. If it doesn't already exist, SIMULATE creates the OUTPUT DBF and dynamically adds records to it as required by the simulation script. Each object requires one .DBF record except when two exist in non- overlapping time intervals and can therefore share the same physical record. The SIMULATION RATE indicates how fast a simulation will run. A rate of 3600 would run the simulation at one second wall clock time for each hour of simulated time. Rates of several hundred to several hundred thousand are typical. DELTA TIME sets the time between simulation calculations in seconds and can be thought of as the granularity of the simulation. If DELTA TIME is specified, the SIMULATION RATE may not be attained especially under compute-bound conditions. Not explicitly specifying DELTA TIME allows SIMULATE to set that value dynamically in an effort to achieve the target SIMULATION RATE. In this case, SIMULATE initially sets DELTA TIME to 60 seconds and adjusts it up or down every few seconds as the complexity of the simulation and the multitasking load of the computer dictate. Each simulation has a natural start and stop time dictated by its script. You can override these times to start later or end earlier by with the START AT/STOP AT Date/Time statements. Date/Time format: MM-DD-[YY]YY,hh:mm:ss (6-7-97,16:08) or DD-MMM-[YY]YY,hh:mm:ss (7-June-1997,16:08) A single number by itself defaults to the hour. If there is no date, the date defaults to 1-1-1970. Unfortunately the range of the format is rather limited. No date before 1-1-1970 is acceptable as is none after February 5, 2036 due to limitations in Microsoft's mktime() function. An attempt is made to adjust between standard and savings time based on the date. Object/Leg statements: DEFINE object_name ; Establish an object. The name may be up to 20 characters but must not contain blanks. Date/Time, +Time, or NEW LEG Establish a course leg in an object. "+" indicates relative. Latitude Longitude ; Define starting/ending point of a leg. SPEED number ; The speed of the projection at the surface of the earth. KNOTS, MPH, KMPH, MPS (meters/sec) ; Units of speed. (Default: KNOTS) HEADING ddd ; Course heading in degrees from true north. TOWARD Latitude Longitude ; Continue on this leg toward a point. May over or undershoot. FOR Time ; Continue on this leg for this time. COLOR number ; The color number (0 to 15) of the object's marker as displayed within MAPIT. -1 to default to the MAPIT default. PERIOD Time ; Period of an orbit around rotating earth. Note that a period of 90 minutes should be stated as PERIOD 1:30. GEOSYNCHRONOUS ; Establish a geosynchronous orbit around the rotating earth. FIXED ; Establish an orbit fixed in space (relative to the stars) around the rotating earth. Each object must be defined once and only once by the DEFINE statement. Multiple legs may follow a definition uninterrupted or they may be interspersed with other objects. In the latter case, focus is re- established on an already-defined object by stating its name without the DEFINE keyword. Each leg of an object is defined in context of a Date/Time. Stating a Date/Time, a relative time (+Time), or NEW LEG establishes a new leg. "+3" would start a new leg 3 hours after the last. The keywords PERIOD, GEOSYNCHRONOUS, and FIXED imply an orbital simulation of a great circle around a rotating earth. Because the orbit is fixed in space above the rotating earth, the great circle orbit will appear shortened or lengthened depending upon its direction and will not, in general, come back to its starting point as would a great circle fixed on the earth's surface. Specifying the PERIOD of an orbit in hours, minutes, and seconds, implies a projected speed on the surface of the earth of the object which will be less than its speed at whatever altitude would be necessary to give it that period. All orbits are assumed to be circular. The circumference of the spherical earth is assumed to be exactly 21,600 nautical miles (60 miles/degree times 360 degrees). The length of a sidereal day (when the earth turns back to the same orientation in space) is assumed to be 23:56:04.098 hours. A GEOSYNCHRONOUS orbit sets the speed such that an object traveling in an easterly direction (heading = 090) remains forever above the same point on the earth. A FIXED orbit implies 0 speed with respect to the stars. Heading, in that case, doesn't matter. Types of legs: pt to pt, time, no speed Types 1 & 5 pt to pt, speed, no time Types 2 & 6 pt, time, speed, toward destination Types 3 & 7 pt, time, speed, heading, no destination Types 4 & 8 GC Orbit around the rotating earth: pt, period, speed, heading, no destination Type 9 Example Output: SIMULATE produces the following output when run against the GOOSE.SIM simulation file found on the MAPIT CD-ROM under the \MAPIT20\EXAMPLES\SIMULATE directory. Natural starting time: 8-1-96,00:32:00, Forced starting time: 9-30-96,00:00:00 Stopping time: 10-21-96,19:35:00 Running simulation to C:GPS.DBF 21 days, 19:35:00 sec Simulated Time at a rate of 50000 X real time. Estimated time to simulate: 38 seconds. Average delta time increments: 98 seconds. 35 seconds elapsed time, 53854 effective rate Used 3 records out of 5. Note that the starting time was delayed (the simulation shortened) by a START AT statement in GOOSE.SIM. Similarly, the requested SIMULATION RATE of 50,0000 X over 38 seconds yielded a 53,854 X effective rate over 35 seconds by increasing the average delta time increment from the default 60 seconds to 98 seconds. If you needed a more precise simulation, you would have to use the DELTA TIME statement to specify it exactly (at the probable expense of the simulation rate.) Three records out of a total of five were used in C:GPS.DBF. Example Simulation Script File: ; demotype.sim - Demonstrate 4 basic types. Output DBF: c:gps Simulation rate 1000 08:48 define xxx ; TYPE 1 color 4 40.3N 80W ; Pittsburgh 09:30 36.9N 76.3W ; to Norfolk color 2 ; TYPE 2 speed 250 mph 42.9N 78.9W ; to Buffalo New Leg toward 36.2N 115.1W ; to Las Vegas color 6 ; TYPE 3 speed 1000 for 03:16 New Leg heading 070 Rhumb ; TYPE 8 color 5 for 03:16 Demonstration Scripts: To view these demonstration simulation scripts, you must have two DOS sessions running concurrently under Windows, the first running MAPIT and the second, SIMULATE. Your Windows environment must be set up to allow the background execution of the second process, SIMULATE. From within MAPIT, mouse to the TOOLS/GPS Markers sub menu and click on Active to enable looking for marker activity. (If you get the warning message, "Error opeing C:GPS.DBF. Create an empty DBF?", respond "Y". You may wish to click off the other options and experiment with them later. You will probably want to set TOOLS/GPS Markers/Scan delay to 0.1 seconds for minimal delay between scans. This will enhance marker response at the expense of making grabbing the attention of the top menu command levels harder, you may have to sit with your finger on the mouse button longer. Begin (Ctrl) or context switch back (Alt) to your other session, switch to your CD-ROM drive, and execute a script as follows. Run these scripts by entering D:\> cd mapit20\examples\simulate D:\.> dir (See what's there.) D:\.> ..\..\exes\simulate goose (DOS 6.x/W3.1) D:\.> ...\exes\simulate goose (DOS 7/W95) If you've set up a mapit directory on your hard drive and are pointing to the proper directories, you could enter: C:\mapit> simulate D:goose or D:\.> C:simulate goose (The variations and joys of DOS are boundless for the initiated.) Context switch back to your MAPIT session and look for the moving markers to appear after a five second delay. Enter "2" or "A" to position yourself to the whole US. While you're entering commands within MAPIT, the moving markers will cease to update but will restart after your command or repaint is finished. Goose.sim This script shows the migration of three GPS-transponder-banded Canada Geese in their flights from Canada to the US over a period of several months. The data was provided by the New York Coop Research Unit (USFWS-NBS) at Cornell University and Ducks Unlimited with the help of Susan Sheaffer at Cornell. Every few hours or days, a passing satellite would turn on a lightweight GPS attached to each bird thereby establishing its position. This location was relayed back to the original satellite and then on to a data gathering site in Maryland. This data demonstrates the advantages as well as the limitations of SIMULATE. If you plot the tracks of the geese by entering the data directly into a .MP1 file and converting it to .MP3 format for display by MAPIT, you can see where the geese have flown but have no idea when or of their relationships to each other over time. Displaying the data through SIMULATE immediately shows the flocks as a function of time clearly revealing their relationships to each other in space at any particular time. You will also note that all three flocks begin their migration within a few days of each other. The granularity of the data and the limitations of SIMULATE become apparent. SIMULATE calculates the average speed between sightings or fixes, if you will. Sightings separated by several days and a few miles may show an average speed of only one or two miles an hour, well below goose stall speed, when, in point of fact, the birds were actually stationary most of the time with a brief but fast flight between locations. Similarly when viewing data over a long period, one may choose a large SIMULATION RATE (50,000 in this script) to speed the process thereby masking short but significant side excursions which warrant more detailed examination under a finer DELTA TIME simulation. You can override script simulation settings from the command line as demonstrated below. USAir.sim Taken from the USAir City Timetable for Pittsburgh, USAIR.SIM simulates many of the Monday, May 8, 1995 morning flights into and out of the Greater Pittsburgh International Airport. The assumptions are that the aircraft are in flight from origin to destination between the listed gate times, and that they fly great circle routes from point to point. Obviously these assumptions are oversimplified, but the resulting simulation reflects, to a greater or lesser extent, the actual traffic patterns around Pittsburgh and to many places in the country and the world flown by USAir from Pittsburgh. USAIR.SIM is a large file simulating up to 271 simultaneous flights. It is easy to get buried in the data. You may want to view it several different times in several different ways. As delivered, MAPIT's history file MAPIT.SAV contains four different views (positions) associated with digits 1 through 4. pos zoom location 1 2.6 37:40N 55:24W US & Europe 2 6.4 37:29N 97:05W US 3 19.4 40:35N 80:00W NE US 4 173.6 40:27N 79:49W Western PA Positions 1 and 2 (POSITION/Restore n, or just type n from within MAPIT) give global and US views, position 3 shows more detail, and position 4 shows aircraft activity over the Pittsburgh area with the type of detail an air-traffic controller might see. You can most rapidly switch between views if you run MAPIT without any background data. C:\> mapit nul /noe From the broader viewpoints, turn on TOOLS/ GPS Markers/Marker trails to see the entire air routes. Marker trails off displays the location of each aircraft as it flies en-route. The simulation is set to run from 6 AM until 2 PM. If you start MAPIT with the command line argument /FULL_TIME, you'll see all the data for a whole day. Notice that the early morning red eye flights starting on the west coast heading to arrive in Pittsburgh about morning rush hour. There is a flurry of air traffic between 9:30 and 10:05 AM which you can examine in detail by reducing the DELTA TIME to 15 seconds for a smoother display. C:\> simulate USAir /delta=15 /start=5-8-95,9:30 /stop=5-8-95,10:05 View this from positions 4 and 3. After running the USAir simulation, delete the output file C:GPS.DBF because it is large enough to slow down subsequent smaller simulations. USAir.sim Output, Pos 2, /Full_time orbits.sim This simulation depicts satellites in various circular orbits. For it to be effective, you should have the markers trails option turned on in MAPIT and should delete the file C:GPS.DBF to speed repaint if you've just run the USAir simulation. View this simulation from the standard world view. The following map was produced from output from ORBITS1.SIM combined with a great circle through Cape Canaveral, Florida and demonstrates a rocket's being launched on a heading of 090 for minimum north/south trajectory excursion. Notice how, because of the earth's rotation, each pass falls short of the previous one while the great circle passes back through the same point. The figure eight over Africa is a geosynchronous orbit with a vertical component viewed for a day. You can replicate the rocket orbit from your MAPIT hard drive directory with: C:> simulate orbits1 /single=153 /mp1=temp C:> mp1tomp3 temp /color=4 C:> mymap temp day.sim year.sim These simulations show the positions of the sun and a stationery object (with respect to the stars) over the course of a day and year. See the scripts for instructions about altering the scripts and zooming in to view the end conditions. You may well ask weighty questions such as, "What is a day? What is a year?" The technical details of these simulations is beyond the scope of this manual and certainly beyond the understanding of its author. View these simulations first from the standard world view. Advanced Considerations: SIMULATE dynamically adds to the length of its output .DBF as needed. MAPIT will scan to the end of the .DBF looking for active records. If the numbers are large, this scan, even if there are few active records, can take an appreciable time (the better part of a second or more depending upon processor speed and loading). The TOOLS/GPS Markers/Scan delay, commonly set to 1 second for GPS and other slow sources but to 0.1 seconds for smoother display of accelerated simulations, is added to the natural delay of the .DBF scan and display. The total of these is the time between the redisplay of marker icons and affects the smoothness of movement and the closeness of adjacent marker displays. If you've just run a simulation such as USAIR.SIM which can allocate almost 300 records, subsequent less-demanding simulations can be adversely affected. Your best bet, then, is to delete the C:GPS.DBF database before running the smaller simulation. You cannot delete that file while MAPIT is running and has it active. Either deactivate it or exit MAPIT, then delete. If you restart MAPIT immediately, MAPIT will prompt you when it tries to open the non- existent file asking whether it may create it. Answer "Y"es. If you start SIMULATE first in the absence of its target file, it will notify you that it's creating a new file and then create it. Either way insures that you will run with the minimum database length required for that simulation under those settings. SIMULATE reuses inactive records during a simulation, but the exact amount of overlap and therefore the requirements is dependent upon the DELTA TIME, SIMULATION RATE, and start/stop times of each simulation. APPENDIX A - FEATURE/LAYER ASSIGNMENTS By Feature: Political/Ocean Boundaries INTL_PO 80 TREATY_PO 82 OCEAN_PO 83 DATE_LINE_PO 88 ADMIN1_PO 81 ADMIN2_PO 89 ADMIN3_PO 94 SPECIAL_PO 95 DISPUTED_PO 96 MET_PO 65 ICE_PO 84 ICE_WATER_PO 86 GLACIER_PO 44 SNOW_PO 45 ICE_LAND_PO 46 COAST_PO 85 SEA_WALL_PO 87 POLITICAL_TXT 117 COUNTRIES_TXT 118 STATES_TXT 64 COUNTIES_TXT 66 Rivers RIV_DN 40 LAKES_DN 41 SAND_DN 42 CANALS_DN 43 CON_DN 47 DRAINAGE_PT 74 DRAINAGE_TXT 75 Roads DIV_HWY_RD 70 PRI_HWY_RD 71 TRAILS_RD 72 CON_RD 73 Railroads SINGLE_RR 90 MULTI_RR 91 LIGHT_RR 92 CON_RR 93 Transportation SHEDS_TS 54 BRIDGES_TS 55 CAUSEWAYS_TS 56 TUNNELS_TS 57 FERRIES_TS 58 FORDS_TS 59 Also specifies airports TRAN_STRUCT_TXT 78 Utilities POWER_UT 100 PHONE_UT 101 EX_PIPES_UT 102 UN_PIPES_UT 103 UTILITIES_TXT 62 TOWERS 63 Cities & Landmarks CULT_LM 50 POP_PLACES_TXT 119 0 population CITY_0 111 1 - 1000 CITY_1 112 1001 - 10,000 CITY_10 113 10,001 - 100,000 CITY_100 114 >100,000 CITY_BIG 115 Ocean Features MISC_OF 51 REEFS_OF 52 LIMITS_OF 53 DEPTH_200M_OF 97 DEPTH_1000M_OF 98 DEPTH_2000M_OF 99 DEPTH_3000M_OF 104 DEPTH_4000M_OF 105 DEPTH_5000M_OF 106 DEPTH_6000M_OF 107 DEPTH_7000M_OF 108 CONT_SHELF_OF 109 TEC_PLATES_OF 110 FRAC_ZONES_OF 67 LINEATIONS_OF 68 MAJOR_SEAS_TXT 76 OCEAN_FEAT_TXT 77 Land Cover LAND_COVER 60 LAND_COVER_TXT 116 By Layer: RIV_DN 40 LAKES_DN 41 SAND_DN 42 CANALS_DN 43 GLACIER_PO 44 SNOW_PO 45 ICE_LAND_PO 46 CON_DN 47 CULT_LM 50 MISC_OF 51 REEFS_OF 52 LIMITS_OF 53 SHEDS_TS 54 BRIDGES_TS 55 CAUSEWAYS_TS 56 TUNNELS_TS 57 FERRIES_TS 58 FORDS_TS 59 LAND_COVER 60 UTILITIES_TXT 62 TOWERS 63 STATES_TXT 64 MET_PO 65 COUNTIES_TXT 66 FRAC_ZONES_OF 67 LINEATIONS_OF 68 DIV_HWY_RD 70 PRI_HWY_RD 71 TRAILS_RD 72 CON_RD 73 DRAINAGE_PT 74 DRAINAGE_TXT 75 MAJOR_SEAS_TXT 76 OCEAN_FEAT_TXT 77 TRAN_STRUCT_TXT 78 INTL_PO 80 ADMIN1_PO 81 TREATY_PO 82 OCEAN_PO 83 ICE_PO 84 COAST_PO 85 ICE_WATER_PO 86 SEA_WALL_PO 87 DATE_LINE_PO 88 ADMIN2_PO 89 SINGLE_RR 90 MULTI_RR 91 LIGHT_RR 92 CON_RR 93 ADMIN3_PO 94 SPECIAL_PO 95 DISPUTED_PO 96 DEPTH_200M_OF 97 DEPTH_1000M_OF 98 DEPTH_2000M_OF 99 POWER_UT 100 PHONE_UT 101 EX_PIPES_UT 102 UN_PIPES_UT 103 DEPTH_3000M_OF 104 DEPTH_4000M_OF 105 DEPTH_5000M_OF 106 DEPTH_6000M_OF 107 DEPTH_7000M_OF 108 CONT_SHELF_OF 109 TEC_PLATES_OF 110 CITY_0 111 CITY_1 112 CITY_10 113 CITY_100 114 CITY_BIG 115 LAND_COVER_TXT 116 POLITICAL_TXT 117 COUNTRIES_TXT 118 POP_PLACES_TXT 119 APPENDIX C - PEN DEFINITONS For additional flexibility during plotting, MAPIT provides override access to internal definitions of pen assignments, line type and width assignments, and plot border and lat/long grids assignments via the pen definition file. The standard definitions are outlined in the default file std.pen shown below. Change a copy and invoke MAPIT with the command line calling parameter /pendefinition=my_file to customize your plotting operations. The standard pen color assignments given by The HP-GL/2 Reference Guide are as follows. They may not be reflected in your plotting hardware/software implementation. Certainly if you have a real pen plotter with physical pens, you are free to put whatever colors you desire in whatever holders. Pen Color Pen Color 0 white 4 yellow 1 black 5 blue 2 red 6 magenta 3 green 7 cyan ; Std.pen - This file reflects the default internal HP-GL/2 pen plotting ; settings of MAPIT. Copy and change to your liking invoking ; with: ; MAPIT /pendefinition=file_name.pen ; Video Color is the index into this table meaning that the MAPIT layer ; (color) determines the pen, width, and line type according to this table ; when making HP-GL/2 plots. ; MAPIT doesn't allow reassigning the default color associated with pens. ; If pen 2 defaults to red on your output device, that is the color you ; are stuck with. Sorry, no robin's egg blue. ; 0.1 mm is supposed to be narrowest width. 0 may be narrower on some ; devices. ; Some devices support 8 pens. MAPIT allows 16. ; Line type 0 is a solid line. Types 1 - 8 are variously dashed and are ; device dependent. ; Video Color Pen # Width in mm. Line type Video to pen color 0 0 0 0 ; black to black (white) 1 5 0 0 ; blue to blue 2 3 0 0 ; green to green 3 7 0 0 ; cyan to cyan 4 2 0 0 ; red to red 5 6 0 0 ; magenta to magenta 6 4 0 0 ; brown to yellow 7 1 0 0 ; white to black 8 1 0 0 ; gray to black 9 5 0 0 ; light blue to blue 10 3 0 0 ; light green to green 11 7 0 0 ; light cyan to cyan 12 2 0 0 ; light red to red 13 6 0 0 ; light magenta to magenta 14 4 0 0 ; yellow to yellow 15 1 0 0 ; bright white to black ; The plotting characteristics of MAPIT's lat/long grid and print borders ; can be specified independently of the standard assignments in the above ; table for raster devices. gridpen=1 ; Specifies pen color only. gridwidth=0 GridType=5 borderpen=1 ; Specifies pen color only. borderwidth=0.5 bordertype=0 APPENDIX E - STANDARD LAT/LON NOTATION MAPIT, MP1TOMP3, GARTODBF, and other MAPIT utilities use the standard lat/lon notation defined below, basically a latitude followed by a longitude in free or fixed format. Fixed Latitude Formats: DDMM.mmm 2316N DDMMSS.sss 133947.6642 S Fixed Longitude Formats: DDDMM.mmm 12318.002 DDDMMSS.sss -0042200 Free Formats: [D]DD.ddd 42.667 [D]DD:MM.mmm 101:40 W [D]DD:MM:SS.sss S 16:0:3.5 Note: any number of places to the right of the decimal may be used. The numeric string may be preceded by an option Indicator I or - or followed by an I. See definitions below. Fixed formats refer not to character positions on a line, but to the relationship of a part of a token with its starting character. (A fixed format of 4 characters means that a particular part of a latitude must be four characters wide, not that it must be the fourth character in the line.) In those cases in which input is taken from a text file (MP1TOMP3) a latitude/longitude pair is expected on each line. In fact, the pairs may be given in reverse order (longitude first) if that fact is unambiguously apparent and in a number of different formats. The latitude/longitude pair can be placed anywhere on any given line as long as they appear as the first two non-blank tokens. I - Indicator. 'N' or 'S' for latitude. 'E' or 'W' for longitude. Case insensitive. Indicators are optional and may be preceded and/or followed by optional white space (blank and tab characters). Indicators are themselves optional and may precede or follow a number but may not both precede and follow the same number. (Coordinates of the form N12E34 are legal, however, because the second indicator, 'E', acts as a separator and is interpreted as preceding the second number. - - The minus sign may be used to indicate either 'S' or 'W'. If used, it must always precede and never follow the number it modifies. Whereas indicators imply latitude or longitude, the minus sign implies neither and may not be used in combination with an indicator. D - Degrees. M - Minutes. S Seconds. ; - The comment character causes all following characters on the line to be ignored. If placed first, the line is as if it didn't exist thus preserving the continuity of a multisegmented line. If no indicator or no fixed format describes or implies which of the pair is the latitude and which the longitude, latitude is assumed to be first. Inconsistent indicators or fixed formats generate error messages. N pairs of coordinates, each on a line of a file, yield n - 1 line segments. Lines are terminated by one or more blank input lines. (See ';' above. Actual creation of a line takes place in MP1TOMP3.) Thus 100 points with a blank line between the 10th and 11th points will yield two lines in a .MP1 file, the first with 9 segments and the second with 89. Terrible Data Examples: ; From file special.pt 39.807655 -91.049645 N3948.4831 W09102.9837 3948.5255NW09102.9713 3948.5390N W09103.0006 3948.5275N 09103.0002W N 3948.5422W 09103.0565 N 3948.5472 09103.1256 W N 3948.5275 W 09103.1252 3948.5005 -09103.1128 3948.4767-09103.0336 N39:48.4774 W091:03.0336 39:48.0034N 091:02.9576W 39:46.9837 N 091:03.9729 W N39:46:51.774 -91:03:53.652 ;N3946.8629 W09103.8942 394658.734 -0910359.832 ; N3946.9789 W09103.9972 INDEX , 7 , 6 , 7, 27 Arrow Keys, 6 City, txt_offset, 15 Clock Reset, GPS, 83 Color numbers, 12, 40 COM Pin Connections, 87 Database, 30, 32 dBASE Editor, 22, 38 dBASE File Format, GPS, 85 Definition File GEOCODE, 59 GEOTOENT, 67 GEOTOMP1, 73 pen, 112 SIMULATE, 98 Distance, 27, 29 E_Type, 22 Edit DBF Entities, 38 Extended Files, 41 Features, 49, 108 Features Display, 49 FIGEDIT, 54 File Names and Conventions, 50 Fonts, 45 Fracture Zones, 50 Gazetteer, 32 GEOCODE, 58 Geocoding, 11 Geosynchronous, 101 GEOTOENT, 66 GEOTOMP1, 72 Goose.sim, 104 GPS, 80 GPS Markers, 35 Great Circles, 8, 27, 29, 61, 72, 99 Help, DOS command line, 9 HP-GL/2, 5, 33, 112 Lat/Lon, Standard Notation, 114 Layers, 39, 109 Line of Sight, 29 Magnetic Lineations, 50 MAPIT auxiliary files, 12 command line, 19 computer requirements, 2 copy, 48 gotcha's, 16 problems and solutions, 16 tips, 18 tools, 27 utilities, 8 Maps, making, 4 Marker Trails, 36 Mercator, 27 mktime() function, 100 Mouse installing in W3.1, 4 left button, 7 use, 5 MP1TOMP3, 89 NMEA 0183, 35, 87, 93 NMETOMP1, 91 Orbits.sim, 106 PCX, 5, 34, 37 Period, 101 Pins, sticking into a map, 9 Plate Boundaries, 50 Plotting, 5, 33 Position Menu, 7, 26 Private Files, 41 Prune, 84, 91 Regions, 52 Register PCX, 37 Rhumb, 27, 72, 99 Scale, 25, 50, 56 Scan Table, 10, 20 Scatter Diagrams, 15 Script File, SIMULATE, 98 SET TZ, 2 Sidereal Day, 101 SIMULATE, 97 Standard World, 26 Status Bottom Status Line, 6 Header Status Field, 6 Style new style entities, 38 old style entities, 41 old vs. new, 13 Tiles, 23 Time Zone, 2 Tracking, 11 Type Face, 45 USAir.sim, 105 Windows 3.1, 3 Windows 95, 3 Xline, 44 Zoom, 24